原文:一行代码在 .NET Core 中快速使用 log4net

1. .NET Core 控制台程序中使用

第一步:添加引用

Install-Package log4net

第二步:将附件 LogHelper.cs 和 log4net.config 两个文件加入到项目中

第三步:在Main中使用 LogHelper 类来记录日志

        public static void Main(string[] args)
{
LogHelper.Configure(); //使用前先配置 LogHelper.Info("NETCorelog4net log");
LogHelper.Info("test log");
LogHelper.Error("error");
LogHelper.Info("linezero");
Console.ReadKey();
}

 

2. ASP.NET Core 中使用

第一步:添加引用

Install-Package log4net

第二步:将附件 LogHelper.cs 和 log4net.config 两个文件加入到项目中

第三步:在Startup 构造函数中初始化

    public class Startup
{
public Startup()
{
LogHelper.Configure(); //使用前先配置
}

第三步:在HomeController 中使用 LogHelper 类来记录日志


public IActionResult Index()
{
LogHelper.Info("index view");
LogHelper.Error("Controller Error");
return View();
}

 

附件

日志类简单封装:LogHelper.cs

    using log4net;
using log4net.Config;
using log4net.Repository;
using System.IO; public class LogHelper
{
private static ILoggerRepository repository { get; set; }
private static ILog _log;
private static ILog log {
get
{
if (_log == null)
{
Configure();
}
return _log;
}
} public static void Configure(string repositoryName = "NETCoreRepository", string configFile = "log4net.config")
{
repository = LogManager.CreateRepository(repositoryName);
XmlConfigurator.Configure(repository, new FileInfo(configFile));
_log = LogManager.GetLogger(repositoryName, "");
} public static void Info(string msg)
{
log.Info(msg);
} public static void Warn(string msg)
{
log.Warn(msg);
} public static void Error(string msg)
{
log.Error(msg);
}
}

log4net 配置文件: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="logfile/" />
<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>

最新文章

  1. IISExpress Log 文件路径
  2. 【尝新】微信小程序初体验
  3. 类A have-a 类B,类B访问类A public 成员
  4. [HDOJ5445]Food Problem(优先队列优化多重背包)
  5. JS日期的获取与加减
  6. linux自定义脚本添加到rc.local脚本无法正常运行的问题
  7. Change http port in bitnami stack
  8. WebGL on iOS8 最终等到了这一天
  9. 【JavaScript设计模式系列---开篇预览】
  10. c语言else匹配问题
  11. lnmp 60秒的服务器缓存时间
  12. Could not load file or assembly &#39;Oracle.DataAccess&#39; or one of its dependencies. An attempt was made to load a program with an incorrect format.
  13. 转载Mvc的多层架构
  14. ubuntu16.04 英文环境安装google chrome
  15. vxWorks 命令
  16. Springboot 集成jpa使用
  17. spring boot - 整合jpa
  18. SkylineGlobe for web开发是否支持IE11?
  19. poj2054 Color a Tree
  20. B - 吉哥系列故事——恨7不成妻

热门文章

  1. 关于软件IntelliJ IDEA的使用技巧(一)
  2. lamp搭建
  3. C# FTP操作代码实现
  4. Linux服务器上创建日志服务器和FTP服务器
  5. [python3]未配置locale的主机出现UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0x....的解决
  6. 虚拟机linux系统 硬盘/root路径扩容
  7. element 的时间快捷键
  8. 【在线工具】java开发常用在线工具
  9. J2EE学习篇之--JDBC详解
  10. react react使用css