前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Log4Net 配置

Log4Net 配置

作者头像
莫问今朝
发布2018-08-31 12:07:20
8990
发布2018-08-31 12:07:20
举报
文章被收录于专栏:博客园
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net"
             type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
<!--必须在AssemblyInfo类添加配置信息-->
 <!--[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]-->
  <log4net>
    <!--默认逻辑-->
    <logger name="DefaultLogger">
      <level value="ALL"/>
      <!--info-warn级别-->
      <appender-ref ref="InfoLoging" />
      <!--error+级别-->
      <appender-ref ref="ErrorLoging" />
    </logger>
    <!--其它逻辑-->
    <logger name="OtherCustomerLogger">
      <level value="ALL"/>
      <!--info-warn级别-->
      <appender-ref ref="OtherInfoLoging" />
      <!--error+级别-->
      <appender-ref ref="OtherErrorLoging" />
    </logger>
    <!--默认逻辑info-warn级别-->
    <appender name="InfoLoging"
              type="log4net.Appender.RollingFileAppender,log4net" >
      <File value="App_Data\Log\LogTipMsg.log" />
      <!--日志以追加形式记录-->
      <param name="AppendToFile" value="true"/>
      <param name="RollingStyle" value="Date"/>
      <!--最大日志文件数量-->
      <param name="MaxSizeRollBackups" value="10"/>
      <!--单个日志文件最大大小-->
      <param name="MaxmumFileSize" value="1MB"/>
      <!--设置日志文件名称生成规则-->
      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.log&quot;"/>
      <!--日志名称是否为静态-->
      <param name="StaticLogFileName" value="false"/>
      <!--布局-->
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
      <!--级别设置-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <LevelMin value="INFO"/>
        <LevelMax value="Warn"/>
      </filter>
    </appender>
    <!--默认逻辑Error+级别-->
    <appender name="ErrorLoging"
              type="log4net.Appender.RollingFileAppender,log4net" >
      <File value="App_Data\Log\LogErrorMsg.log" />
      <!--日志以追加形式记录-->
      <param name="AppendToFile" value="true"/>
      <param name="RollingStyle" value="Date"/>
      <!--最大日志文件数量-->
      <param name="MaxSizeRollBackups" value="10"/>
      <!--单个日志文件最大大小-->
      <param name="MaxmumFileSize" value="1MB"/>
      <!--设置日志文件名称生成规则-->
      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.log&quot;"/>
      <!--日志名称是否为静态-->
      <param name="StaticLogFileName" value="false"/>
      <!--布局-->
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
      <!--级别设置-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <LevelMin value="ERROR" />
      </filter>
    </appender>
    <!--其它逻辑info-warn级别-->
    <appender name="OtherInfoLoging"
              type="log4net.Appender.RollingFileAppender,log4net" >
      <File value="App_Data\Log\LogOtherTipMsg.log" />
      <!--日志以追加形式记录-->
      <param name="AppendToFile" value="true"/>
      <param name="RollingStyle" value="Date"/>
      <!--最大日志文件数量-->
      <param name="MaxSizeRollBackups" value="10"/>
      <!--单个日志文件最大大小-->
      <param name="MaxmumFileSize" value="1MB"/>
      <!--设置日志文件名称生成规则-->
      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.log&quot;"/>
      <!--日志名称是否为静态-->
      <param name="StaticLogFileName" value="false"/>
      <!--布局-->
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
      <!--级别设置-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <LevelMin value="INFO"/>
        <LevelMax value="Warn"/>
      </filter>
    </appender>
   
    <!--==================================================================================-->
    <!--其它逻辑Error+级别-->
    <appender name="OtherErrorLoging"
              type="log4net.Appender.RollingFileAppender,log4net" >
      <File value="App_Data\Log\LogOtherErrorLoging.log" />
      <!--日志以追加形式记录-->
      <param name="AppendToFile" value="true"/>
      <param name="RollingStyle" value="Date"/>
      <!--最大日志文件数量-->
      <param name="MaxSizeRollBackups" value="10"/>
      <!--单个日志文件最大大小-->
      <param name="MaxmumFileSize" value="1MB"/>
      <!--设置日志文件名称生成规则-->
      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.log&quot;"/>
      <!--日志名称是否为静态-->
      <param name="StaticLogFileName" value="false"/>
      <!--布局-->
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
      <!--级别设置-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <LevelMin value="ERROR" />
      </filter>
    </appender>
    
  </log4net>
</configuration>

core版本

core中使用log4net与.Net中有所不同,在Startup类中声明一个ILoggerRepository类型

代码语言:javascript
复制
 public static ILoggerRepository repository;

然后再中间件中添加配置

代码语言:javascript
复制
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
     var builder = new ConfigurationBuilder()
               .SetBasePath(env.ContentRootPath)
               .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
               .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
               .AddEnvironmentVariables();
     repository = LogManager.CreateRepository("NETCoreRepository");
     XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));      
}

使用时在控制器中创建Log对象

代码语言:javascript
复制
public class HomeController : Controller
{
        private ILog log = LogManager.GetLogger(Startup.repository.Name, typeof(HomeController));
         public IActionResult Index()
        { 
            log.Info("这是Info信息");
            log.Error("这是Error信息");
            return View();
        }

}
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!-- This section contains the log4net configuration settings -->
  <log4net>
    <!--不同-->
    <root>
      <level value="ALL" />
      <appender-ref ref="DefaultLogger" />
      <appender-ref ref="ErrorLoging" />
    </root>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
    </appender>

    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="log-file.log" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

    <appender name="DefaultLogger" type="log4net.Appender.RollingFileAppender">
      type="log4net.Appender.RollingFileAppender,log4net" >
      <File value="App_Data\Log\LogTipMsg.log" />
      <!--日志以追加形式记录-->
      <param name="AppendToFile" value="true"/>
      <param name="RollingStyle" value="Date"/>
      <!--最大日志文件数量-->
      <param name="MaxSizeRollBackups" value="10"/>
      <!--单个日志文件最大大小-->
      <param name="MaxmumFileSize" value="1MB"/>
      <!--设置日志文件名称生成规则-->
      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.log&quot;"/>
      <!--日志名称是否为静态-->
      <param name="StaticLogFileName" value="false"/>
      <!--布局-->
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
      <!--级别设置-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <LevelMin value="INFO"/>
        <LevelMax value="Warn"/>
      </filter>
    </appender>
    <!--默认逻辑Error+级别-->
    <appender name="ErrorLoging"
              type="log4net.Appender.RollingFileAppender,log4net" >
      <File value="App_Data\Log\LogErrorMsg.log" />
      <!--日志以追加形式记录-->
      <param name="AppendToFile" value="true"/>
      <param name="RollingStyle" value="Date"/>
      <!--最大日志文件数量-->
      <param name="MaxSizeRollBackups" value="10"/>
      <!--单个日志文件最大大小-->
      <param name="MaxmumFileSize" value="1MB"/>
      <!--设置日志文件名称生成规则-->
      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.log&quot;"/>
      <!--日志名称是否为静态-->
      <param name="StaticLogFileName" value="false"/>
      <!--布局-->
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
      <!--级别设置-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <LevelMin value="ERROR" />
      </filter>
    </appender>
    <!-- Setup the root category, add the appenders and set the default level -->
  

  </log4net>
</configuration>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-11-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档