【问题标题】:Minimal log4net configuration最小的 log4net 配置
【发布时间】:2017-06-07 00:20:00
【问题描述】:

如何配置 .NET 控制台应用程序以使用滚动日志文件并能够在应用程序运行时清除其内容?

在通过搜索网络并再次浏览 log4net 文档(非常健谈)收集了所有需要的部分后,我正在回答我自己的问题。我倾向于在一两年内做一次同样的工作,因为令人惊讶的是,仍然没有一个单一的答案可以涵盖 SO 上存在的所有要求。

【问题讨论】:

    标签: c# configuration log4net


    【解决方案1】:

    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);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多