netcore log4相关

配置:

1:NuGet程序包 - 搜索log4net - 安装

2:配置代码

Startup文件

#region log4
        public static ILoggerRepository repository { get; set; }
        #endregion

public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

#region log4配置
            repository = log4net.LogManager.CreateRepository("NETCoreRepository");
            log4net.Config.XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
            #endregion
        }

3:增加配置文件 log4net.config

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
   <!-- This section contains the log4net configuration settings -->
   <log4net>
     <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="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
     <file value="D:\log4/" />   //存储路径
     <appendToFile value="true" />
     <rollingStyle value="Composite" />
     <staticLogFileName value="false" />
     <datePattern value="yyyyMMdd'.log'" />
     <maxSizeRollBackups value="10" />
     <maximumFileSize value="1MB" />
     <layout type="log4net.Layout.PatternLayout">
       <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
     </layout>
   </appender>

<!-- Setup the root category, add the appenders and set the default level -->
   <root>
     <level value="ALL" />
     <appender-ref ref="ConsoleAppender" />
     <appender-ref ref="FileAppender" />
       <appender-ref ref="RollingLogFileAppender" />
     </root>
 
   </log4net>
 </configuration>

4:编写代码

(1):

public class Log4Controller : Controller
    {
        private ILog log;
        public Log4Controller(IHostingEnvironment hostingEnv)
        {
            this.log = LogManager.GetLogger(Startup.repository.Name, typeof(Log4Controller));
        }
        // GET: /<controller>/
        public IActionResult Index()
        {
            log.Error("测试日志");
            return Content("log.Error ok");
        }
    }

5:日志级别

trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。

debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。

info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。

warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。

error: 错误信息。用的也比较多。

fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。

上一篇:在SQL Server中用好模糊查询指令LIKE (转载)


下一篇:java正则表达式去除html中所有的标签和特殊HTML字符(以&开头的)