其他分享
首页 > 其他分享> > .net 使用log4net日志功能

.net 使用log4net日志功能

作者:互联网

(一)在  .net core 中使用

   新建一个配置文件,输入以下代码

<?xml version="1.0" encoding="utf-8"?>
<configuration>

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

  <log4net>
    <logger name="InfoLog">
      <level value="INFO"/>
      <appender-ref ref="InfoLogAppender"/>
    </logger>
    <logger name="ErrorLog">
      <level value="INFO"/>
      <appender-ref ref="ErrorLogAppender"/>
    </logger>
    <appender name="InfoLogAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志路径-->
      <param name="File" value="D:/info/"/>
      <!--多线程时采用最小锁定-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <!--是否是向文件中追加日志-->
      <param name="AppendToFile" value="true"/>
      <!--log保留天数-->
      <param name="MaxSizeRollBackups" value="10"/>
      <!--日志文件名是否是固定不变的-->
      <param name="StaticLogFileName" value="false"/>
      <!--日志文件名格式为:2008-08-31.log-->
      <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p  %m%n"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
      </filter>
    </appender>
    <appender name="ErrorLogAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志路径-->
      <param name="File" value="D:/error/"/>
      <!--多线程时采用最小锁定-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <!--是否是向文件中追加日志-->
      <param name="AppendToFile" value="true"/>
      <!--log保留天数-->
      <param name="MaxSizeRollBackups" value="10"/>
      <!--日志文件名是否是固定不变的-->
      <param name="StaticLogFileName" value="false"/>
      <!--日志文件名格式为:2008-08-31.log-->
      <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p  %m%n"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="ERROR" />
        <param name="LevelMax" value="ERROR" />
      </filter>
    </appender>
    <!--root是一个父级的logger,所有Logger列表的形式写在里面,相当于多个looger分开定义-->
    <root>
      <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
      <level value="all"/>
      <appender-ref ref="ErrorLogAppender"/>
      <appender-ref ref="InfoLogAppender" />
    </root>
  </log4net>

</configuration>

在startup.cs 中进行配置

 public static ILoggerRepository repository { get; set; }
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
            repository = LogManager.CreateRepository(this.GetType().FullName);
            //log4Net配置文件的路径
            XmlConfigurator.Configure(repository, new FileInfo("Config/log4net.config"));
            BasicConfigurator.Configure(repository);


        }

在需要使用的地方进行调用

log4net.ILog logger = log4net.LogManager.GetLogger(Startup.repository.Name, typeof(LogHelper));

 logger.Info("123");

(二)在.net framework中使用

将上面的配置信息添加到配置文件中。

如果是非web项目需要在AssemblyInfo.cs 文件中添加  [assembly: log4net.Config.XmlConfigurator(Watch = true)] 

然后再需要用到的地方调用 

log4net.ILog logger = log4net.LogManager.GetLogger("InfoLog");

logger.Info("123");

 

标签:log4net,配置文件,repository,LogManager,net,logger,日志
来源: https://www.cnblogs.com/hegn/p/16397128.html