最小的 log4net 配置
Minimal log4net configuration
如何配置 .NET 控制台应用程序以使用滚动日志文件并能够在应用程序 运行 时清除其内容?
在通过搜索网络并再次浏览 log4net 文档(非常冗长)收集了所有需要的内容之后,我正在回答我自己的问题。我倾向于在一两年内做一次同样的工作,因为令人惊讶的是,仍然没有一个单一的答案涵盖 SO 上存在的所有要求。
a) 安装 NuGet 包 log4net(当前为 2.0.x)
b) 将以下行添加到 Start 方法的开头
public static void Start(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
...
}
c) 将以下部分添加到 App.config
*log4net sdk documentation 在试图找出所有这些配置值的含义时非常有用
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingFileAppender_All" type="log4net.Appender.RollingFileAppender">
<file value="MyApplication.log" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message %exception%newline" />
</layout>
</appender>
<root>
<level value="ALL" /> <!-- ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
<appender-ref ref="RollingFileAppender_All" />
</root>
</log4net>
</configuration>
d) 创建一个记录器实例并使用它
using log4net;
public class SomeClass
{
private static readonly ILog log = LogManager.GetLogger(typeof(SomeClass));
public void DoSomething()
{
try
{
throw new InvalidOperationException("test");
}
catch (Exception ex)
{
log.Error(ex);
}
}
}
如何配置 .NET 控制台应用程序以使用滚动日志文件并能够在应用程序 运行 时清除其内容?
在通过搜索网络并再次浏览 log4net 文档(非常冗长)收集了所有需要的内容之后,我正在回答我自己的问题。我倾向于在一两年内做一次同样的工作,因为令人惊讶的是,仍然没有一个单一的答案涵盖 SO 上存在的所有要求。
a) 安装 NuGet 包 log4net(当前为 2.0.x)
b) 将以下行添加到 Start 方法的开头
public static void Start(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
...
}
c) 将以下部分添加到 App.config
*log4net sdk documentation 在试图找出所有这些配置值的含义时非常有用
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingFileAppender_All" type="log4net.Appender.RollingFileAppender">
<file value="MyApplication.log" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message %exception%newline" />
</layout>
</appender>
<root>
<level value="ALL" /> <!-- ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
<appender-ref ref="RollingFileAppender_All" />
</root>
</log4net>
</configuration>
d) 创建一个记录器实例并使用它
using log4net;
public class SomeClass
{
private static readonly ILog log = LogManager.GetLogger(typeof(SomeClass));
public void DoSomething()
{
try
{
throw new InvalidOperationException("test");
}
catch (Exception ex)
{
log.Error(ex);
}
}
}