Azure Log4Net Appender 避免为每个条目创建一个 xml 文件
Azure Log4Net Appender avoid create a xml file for each entry
我安装了 log4net.Appender.Azure
并让它与 Azure blob 存储一起使用。我的问题是它为每个日志记录创建一个 log.xml 文件,这很烦人。
这是为一个日志记录创建的示例日志文件,
<LogEntry>
<UserName>IIS APPPOOL\myapp.web</UserName>
<TimeStamp>05/18/2016 16:14:13</TimeStamp>
<ThreadName>82</ThreadName>
<LoggerName>App.Common.Logger</LoggerName>
<Level>ERROR</Level>
<Identity/>
<Domain>/LM/W3SVC/14/ROOT-5-131080247274265317</Domain>
<CreatedOn>05/18/2016 06:17:21</CreatedOn>
<RenderedMessage>Test Error msg log4net</RenderedMessage>
<Location>MyApp.Web.App.User.Controllers.UserController.SignIn(C:\...\Source\Controllers\UserController.cs:63)</Location>
</LogEntry>
是否有一种配置可以避免这种情况并具有类似每日日志或滚动机制之类的东西?找不到这方面的任何文档。
你在用这个吗? https://www.nuget.org/packages/log4net.Appender.Azure
如果是这样,你不能根据你可以在 github (https://github.com/stemarie/log4net.Azure) 上找到的文档。
一个选项是在 Azure Table 中追加日志:这样你会得到 1 行(而不是 1 个文件)用于新的每条日志记录。
<appender name="AzureTableAppender" type="log4net.Appender.AzureTableAppender, log4net.Appender.Azure">
<param name="TableName" value="testLoggingTable"/>
<!-- You can either specify a connection string or use the ConnectionStringName property instead -->
<param name="ConnectionString" value="UseDevelopmentStorage=true"/>
<!--<param name="ConnectionStringName" value="GlobalConfigurationString" />-->
<!-- You can specify this to make each LogProperty as separate Column in TableStorage,
Default: all Custom Properties were logged into one single field -->
<param name="PropAsColumn" value="true" />
<!-- You can specify this to make each LogProperty as separate Column in TableStorage,
Default: all Custom Properties were logged into one single field -->
<param name="PropAsColumn" value="true" />
<param name="PartitionKeyType" value="LoggerName" />
</appender>
或者您可以更新 github https://github.com/stemarie/log4net.Azure
上提供的代码
我安装了 log4net.Appender.Azure
并让它与 Azure blob 存储一起使用。我的问题是它为每个日志记录创建一个 log.xml 文件,这很烦人。
这是为一个日志记录创建的示例日志文件,
<LogEntry>
<UserName>IIS APPPOOL\myapp.web</UserName>
<TimeStamp>05/18/2016 16:14:13</TimeStamp>
<ThreadName>82</ThreadName>
<LoggerName>App.Common.Logger</LoggerName>
<Level>ERROR</Level>
<Identity/>
<Domain>/LM/W3SVC/14/ROOT-5-131080247274265317</Domain>
<CreatedOn>05/18/2016 06:17:21</CreatedOn>
<RenderedMessage>Test Error msg log4net</RenderedMessage>
<Location>MyApp.Web.App.User.Controllers.UserController.SignIn(C:\...\Source\Controllers\UserController.cs:63)</Location>
</LogEntry>
是否有一种配置可以避免这种情况并具有类似每日日志或滚动机制之类的东西?找不到这方面的任何文档。
你在用这个吗? https://www.nuget.org/packages/log4net.Appender.Azure 如果是这样,你不能根据你可以在 github (https://github.com/stemarie/log4net.Azure) 上找到的文档。
一个选项是在 Azure Table 中追加日志:这样你会得到 1 行(而不是 1 个文件)用于新的每条日志记录。
<appender name="AzureTableAppender" type="log4net.Appender.AzureTableAppender, log4net.Appender.Azure">
<param name="TableName" value="testLoggingTable"/>
<!-- You can either specify a connection string or use the ConnectionStringName property instead -->
<param name="ConnectionString" value="UseDevelopmentStorage=true"/>
<!--<param name="ConnectionStringName" value="GlobalConfigurationString" />-->
<!-- You can specify this to make each LogProperty as separate Column in TableStorage,
Default: all Custom Properties were logged into one single field -->
<param name="PropAsColumn" value="true" />
<!-- You can specify this to make each LogProperty as separate Column in TableStorage,
Default: all Custom Properties were logged into one single field -->
<param name="PropAsColumn" value="true" />
<param name="PartitionKeyType" value="LoggerName" />
</appender>
或者您可以更新 github https://github.com/stemarie/log4net.Azure
上提供的代码