ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.net 使用log4net日志功能

2022-06-21 16:03:50  阅读:130  来源: 互联网

标签:log4net 配置文件 repository LogManager net logger 日志


(一)在  .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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有