log4net 配置

NuGet添加引用

Install-Package log4net

添加 Log4net.config 文件,并设置为“Copy Always”

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

  <log4net>
    <!-- 将日志输出到控制台 -->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>

    <!-- 将日志输出到文件 -->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="SyscoTRAC" />  <!--log文件名-->
      <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'" /> <!--归档log文件名-->
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%date] %level [%thread][%c{1}:%line] - %m%n" />
      </layout>
    </appender>

    <root>
      <!-- 控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
      <!-- 比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录 -->
      <!-- 如果没有定义LEVEL的值,则缺省为DEBUG -->
      <level value="ALL" />
      <!-- 将日志输出到控制台 -->
      <appender-ref ref="ConsoleAppender" />
      <!-- 将日志输出到文件 -->
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
</configuration>

在 AssemblyInfo.cs 末尾添加:Tell log4net to Load Your Config

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]

初始化log4net

    /// <summary>
    /// https://blog.csdn.net/jiangguilong2000/article/details/77102709
    /// https://www.cnblogs.com/pangkang/p/5833519.html
    /// https://www.cnblogs.com/yonghuacui/p/6165262.html
    /// </summary>
    class LoggerFactory
    {
        //初始化并设置日志路径
        private static ILog _log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        public static ILog GetLog()
        {
            return _log;
        }
    }

开始使用

ILog log = LoggerFactory.GetLog();
log.InfoFormat("Start ticket:{0}",ticketNum);
log.WarnFormat("ticket not exist in Transcend!");
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容