发生 log4net 错误
log4net error occurred
以下代码将日志文件格式化为日期时间(例如:yyyyMMdd_HHmmss.log)
但是结果有问题。* * 我只想制作一个日志文件 当我 运行 下面的代码时 * * * * 但是,创建了两个或更多日志文件。* *
(例如:20170721_14 * * 22 * * 30.log、20170721_14 * * 23 * * 00.log、20170721......)
我不知道为什么
我想解决我的问题
如何修复我的代码?
C#代码:
namespace ConsoleApplication1
{
class Program
{
static readonly ILog Logger = LogManager.GetLogger("DebugLogger");
static void Main(string[] args)
{
int i;
for (i=1;i<=50000000;i++)
Logger.DebugFormat("{0},{1},{2}", 999, 997, 996);
}
}
}
我的web.config如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<file value=""/>
<datePattern value="yyMMdd_HHmmss'.log '" />
<staticLogFileName value="false" />
<appendToFile value="false" />
<rollingStyle value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message%newline">
</conversionPattern>
</layout>
</appender>
<logger name="DebugLogger">
<level value="ALL" />
<appender-ref ref="DebugAppender" />
</logger>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
您已选择 "Date" 作为滚动类型。所以它会根据日期模式分离不同的日志:
<datePattern value="yyMMdd_HHmmss'.log'" />
我相信这会每秒创建一个新日志。因为这是您在日志日期模式中指定的最小值。
如果你只想要一个日志,那就禁用滚动!
或者,如果您想要每日日志,请使用:
<datePattern value="yyMMdd'.log'" />
我认为您需要了解如何使用 log4net 的配置。当前配置看起来像是用于按日期滚动文件附加程序。
如果您不关心日期,请遵循 log4net 站点中描述的指南:https://logging.apache.org/log4net/release/config-examples.html#fileappender
以下代码将日志文件格式化为日期时间(例如:yyyyMMdd_HHmmss.log) 但是结果有问题。* * 我只想制作一个日志文件 当我 运行 下面的代码时 * * * * 但是,创建了两个或更多日志文件。* * (例如:20170721_14 * * 22 * * 30.log、20170721_14 * * 23 * * 00.log、20170721......) 我不知道为什么
我想解决我的问题
如何修复我的代码?
C#代码:
namespace ConsoleApplication1
{
class Program
{
static readonly ILog Logger = LogManager.GetLogger("DebugLogger");
static void Main(string[] args)
{
int i;
for (i=1;i<=50000000;i++)
Logger.DebugFormat("{0},{1},{2}", 999, 997, 996);
}
}
}
我的web.config如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<file value=""/>
<datePattern value="yyMMdd_HHmmss'.log '" />
<staticLogFileName value="false" />
<appendToFile value="false" />
<rollingStyle value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message%newline">
</conversionPattern>
</layout>
</appender>
<logger name="DebugLogger">
<level value="ALL" />
<appender-ref ref="DebugAppender" />
</logger>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
您已选择 "Date" 作为滚动类型。所以它会根据日期模式分离不同的日志:
<datePattern value="yyMMdd_HHmmss'.log'" />
我相信这会每秒创建一个新日志。因为这是您在日志日期模式中指定的最小值。
如果你只想要一个日志,那就禁用滚动! 或者,如果您想要每日日志,请使用:
<datePattern value="yyMMdd'.log'" />
我认为您需要了解如何使用 log4net 的配置。当前配置看起来像是用于按日期滚动文件附加程序。
如果您不关心日期,请遵循 log4net 站点中描述的指南:https://logging.apache.org/log4net/release/config-examples.html#fileappender