我有一个ASP.NET核心Web应用程序,通过Nuget添加log4net 2.0.8并使用此配置文件初始化:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingFileAppenderInfo" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="Logs\mysite-dev-%utcdate{yyyy-MM-dd}-info.log" />
<maxSizeRollBackups value="500" />
<maximumFileSize value="5MB" />
<threshold value="DEBUG"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="INFO" />
</filter>
<filter class="log4net.Filter.DenyAllFilter"/>
</appender>
<appender name="RollingFileAppenderError" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="Logs\mysite-dev-%utcdate{yyyy-MM-dd}-errors.log" />
<maxSizeRollBackups value="500" />
<maximumFileSize value="5MB" />
<threshold value="WARN"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
<levelMax value="ERROR" />
</filter>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderInfo" />
<appender-ref ref="RollingFileAppenderError" />
</root>
</log4net>
这是在Startup
中初始化的,如下所示:
loggerFactory.AddLog4Net($"log4net.{env.EnvironmentName}.config");
这使用a solution I found连接ASP.NET Core中的log4net。显然,以上配置的几个版本名为log4net。开发 .config等,但它们都非常相似。当我在Visual Studio中本地运行时,我在输出窗口中看到以下错误:
log4net:错误XmlHierarchyConfigurator:找不到属性 [maxSizeRollBackups]在[log4net.Appender.FileAppender]上设置对象
log4net:错误XmlHierarchyConfigurator:找不到属性 [maximumFileSize]在[log4net.Appender.FileAppender]上设置对象
这些错误仅供内部使用,似乎不会影响正在运行的应用。但我需要能够配置这些log4net属性。那么如何在我的log4net配置中设置maxSizeRollBackups
和maximumFileSize
属性?我做错了吗?
答案 0 :(得分:2)
属性不是FileAppender的一部分,请尝试使用RollingFileAppender。那是你需要的追加者:
type="log4net.Appender.RollingFileAppender"