zoukankan      html  css  js  c++  java
  • 在服务以及Asp.net网站中配置Log4net

    Log4net是一个开源的记录日志的插件,在使用时需要程序员对其进行配置。

    该配置分两种情况(服务&网站)

    1.服务(以及控制台应用程序)下的配置:

           1.1 将log4net.config放置在应用程序生成目录(debug/release)下,具体内容如下(列出了主要功能,可根据徐求自行选择配置):

    View Code
    <?xml version="1.0" encoding="utf-8" ?>
    <log4net>
        <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="ERROR" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />
            <File value="Logs\err.log" />
            <PreserveLogFileNameExtension value="true" />
            <!--日志文件名开头-->
            <File value="Logs\err.log" />
            <!--是否追加到文件-->
            <appendToFile value="true" />
            <!--混合使用日期和文件大小变换日志文件名-->
            <rollingStyle value="Composite" />
            <!--日期的格式-->
            <datePattern value="yyyyMMdd" />
            <!--最大变换数量-->
            <maxSizeRollBackups value="1000" />
            <!--最大文件大小-->
            <maximumFileSize value="10MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger - %message%newline" />
          </layout>
        </appender>
        <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="INFO" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />
            <File value="Logs\info.log" />
            <PreserveLogFileNameExtension value="true" />
          <!--是否追加到文件-->
          <appendToFile value="true" />
          <!--混合使用日期和文件大小变换日志文件名-->
          <rollingStyle value="Composite" />
          <!--日期的格式-->
          <datePattern value="yyyyMMdd" />
          <!--最大变换数量-->
          <maxSizeRollBackups value="1000" />
          <!--最大文件大小-->
          <maximumFileSize value="10MB" />
          
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger - %message%newline" />
          </layout>
        </appender>
        <appender name="debugAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="DEBUG" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />
            <File value="Logs\debug.log" />
            <PreserveLogFileNameExtension value="true" />
          <!--是否追加到文件-->
          <appendToFile value="true" />
          <!--混合使用日期和文件大小变换日志文件名-->
          <rollingStyle value="Composite" />
          <!--日期的格式-->
          <datePattern value="yyyyMMdd" />
          <!--最大变换数量-->
          <maxSizeRollBackups value="1000" />
          <!--最大文件大小-->
          <maximumFileSize value="10MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger - %message%newline" />
          </layout>
        </appender>
        <appender name="perfAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="INFO" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />
            <File value="Logs\perf.log" />
            <PreserveLogFileNameExtension value="true" />
            <!--是否追加到文件-->
            <appendToFile value="true" />
            <!--混合使用日期和文件大小变换日志文件名-->
            <rollingStyle value="Composite" />
            <!--日期的格式-->
            <datePattern value="yyyyMMdd" />
            <!--最大变换数量-->
            <maxSizeRollBackups value="1000" />
            <!--最大文件大小-->
            <maximumFileSize value="10MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger - %message%newline" />
          </layout>
        </appender>
      
        <root>
            <level value="ALL" />
            <appender-ref ref="errorAppender" />
            <appender-ref ref="infoAppender" />
            <appender-ref ref="debugAppender" />
        </root>
        <logger name="Performance" additivity="false">
          <level value="ALL" />
          <appender-ref ref="perfAppender" />
        </logger>
        <logger name="WeiXinApp" additivity="false">
          <level value="ALL" />
          <appender-ref ref="errorAppender" />
            <appender-ref ref="infoAppender" />
            <appender-ref ref="debugAppender" />
        </logger>
    </log4net>

           1.2 在需要记录日志的程序集中引用log4net.dll文件。

           1.3 在程序集中添加一个LogProvide类:

    View Code
        class LogProvider
        {
            private static ILog _logger;
    
            public static ILog GetLogger()
            {
                if (_logger == null)
                {
                    string logConfig = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config");
                    XmlConfigurator.Configure(new FileInfo(logConfig));
                    _logger = LogManager.GetLogger("TestSplit");
                }
                return _logger;
            }
        }

      1.4 调用LogProvide. GetLogger获取_logger实例,并通过实例提供的方法记录日志。

    2.Asp.Net网站环境下的配置:

      1.1 在WebConfig中的Configuration下添加如下内容:

    View Code
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>

      1.2将上面的log4net.config中的log4net节点之间的部分追加到上面的节点之后:

    View Code
    复制代码
    <log4net>
        <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="ERROR" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />
            <File value="Logs\err.log" />
            <PreserveLogFileNameExtension value="true" />
            <!--日志文件名开头-->
            <File value="Logs\err.log" />
            <!--是否追加到文件-->
            <appendToFile value="true" />
            <!--混合使用日期和文件大小变换日志文件名-->
            <rollingStyle value="Composite" />
            <!--日期的格式-->
            <datePattern value="yyyyMMdd" />
            <!--最大变换数量-->
            <maxSizeRollBackups value="1000" />
            <!--最大文件大小-->
            <maximumFileSize value="10MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger - %message%newline" />
          </layout>
        </appender>
        <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="INFO" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />
            <File value="Logs\info.log" />
            <PreserveLogFileNameExtension value="true" />
          <!--是否追加到文件-->
          <appendToFile value="true" />
          <!--混合使用日期和文件大小变换日志文件名-->
          <rollingStyle value="Composite" />
          <!--日期的格式-->
          <datePattern value="yyyyMMdd" />
          <!--最大变换数量-->
          <maxSizeRollBackups value="1000" />
          <!--最大文件大小-->
          <maximumFileSize value="10MB" />
          
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger - %message%newline" />
          </layout>
        </appender>
        <appender name="debugAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="DEBUG" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />
            <File value="Logs\debug.log" />
            <PreserveLogFileNameExtension value="true" />
          <!--是否追加到文件-->
          <appendToFile value="true" />
          <!--混合使用日期和文件大小变换日志文件名-->
          <rollingStyle value="Composite" />
          <!--日期的格式-->
          <datePattern value="yyyyMMdd" />
          <!--最大变换数量-->
          <maxSizeRollBackups value="1000" />
          <!--最大文件大小-->
          <maximumFileSize value="10MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger - %message%newline" />
          </layout>
        </appender>
        <appender name="perfAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="INFO" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />
            <File value="Logs\perf.log" />
            <PreserveLogFileNameExtension value="true" />
            <!--是否追加到文件-->
            <appendToFile value="true" />
            <!--混合使用日期和文件大小变换日志文件名-->
            <rollingStyle value="Composite" />
            <!--日期的格式-->
            <datePattern value="yyyyMMdd" />
            <!--最大变换数量-->
            <maxSizeRollBackups value="1000" />
            <!--最大文件大小-->
            <maximumFileSize value="10MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger - %message%newline" />
          </layout>
        </appender>
      
        <root>
            <level value="ALL" />
            <appender-ref ref="errorAppender" />
            <appender-ref ref="infoAppender" />
            <appender-ref ref="debugAppender" />
        </root>
        <logger name="Performance" additivity="false">
          <level value="ALL" />
          <appender-ref ref="perfAppender" />
        </logger>
        <logger name="WeiXinApp" additivity="false">
          <level value="ALL" />
          <appender-ref ref="errorAppender" />
            <appender-ref ref="infoAppender" />
            <appender-ref ref="debugAppender" />
        </logger>
    </log4net>
    复制代码

           1.3 在网站中引用log4net.dll插件,并在Global中作如下配置: 

    View Code
    void Application_Start(object sender, EventArgs e)
    {
        // 在应用程序启动时运行的代码
        XmlConfigurator.Configure();
    }

      

      1.4 在需要记录日志的程序集中引用log4net.dll文件。

      1.5 在程序集中添加一个LogProvide类

    View Code
    复制代码
        class LogProvider
        {
            private static ILog _logger;
    
            public static ILog GetLogger()
            {
                if (_logger == null)
                {
                    _logger = LogManager.GetLogger("TestSplit");
                }
                return _logger;
            }
        }
    复制代码

      1.6 调用LogProvide. GetLogger获取_logger实例,并通过实例提供的方法记录日志。

  • 相关阅读:
    二分数组的一些搜索方法
    获取图像lbp特征
    字符串的模糊搜索
    Python numpy读取图片方法
    红方人员实战手册转载
    libuv的交叉编译
    Gogs的交叉编译与配置
    配置PHP8与Nginx并启动nextcloud
    hi3798mv100SDK上DropBear的交叉编译
    Nginx的交叉编译
  • 原文地址:https://www.cnblogs.com/guxingwork/p/2944618.html
Copyright © 2011-2022 走看看