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