NetCore 使用Log4Net(两种方式)
2021-02-02 14:17
阅读:514
标签:manager 构造 Once pen 方法 create 表示 mfile 反向代理
首先去Nuget中安装Log4Net包
安装:log4net
安装:Microsoft.Extensions.Logging.Console
安装:Microsoft.Extensions.Logging.Log4Net.AspNetCore
方式一
Program.cs文件
using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Logging; namespace NetCoreApp { public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run();//CreateWebHostBuilder启动了Kestrel服务器,这个服务器负责监听--转发--响应客户端请求(这样就不需要IIS来负责监听,转发,响应客户端请求了,IIS就只做反向代理就行了) } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .ConfigureLogging((context, loggingbuilder) => { //该方法需要引入Microsoft.Extensions.Logging名称空间 loggingbuilder.AddFilter("System", LogLevel.Warning); //过滤掉系统默认的一些日志 loggingbuilder.AddFilter("Microsoft", LogLevel.Warning);//过滤掉系统默认的一些日志 //添加Log4Net //var path = Directory.GetCurrentDirectory() + "\\log4net.config"; //不带参数:表示log4net.config的配置文件就在应用程序根目录下,也可以指定配置文件的路径 loggingbuilder.AddLog4Net(); }) .UseStartup(); } }
控制器中使用
using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; namespace NetCoreApp.Controllers { public class HomeController : Controller { //ILoggerFactory和ILogger都是系统内置的接口,它们两个都可以写日志,随便你用哪个都行 public ILoggerFactory _Factory = null; public ILogger_logger = null; //注意:ILoggerFactory的命名空间是Microsoft.Extensions.Logging; public HomeController(ILoggerFactory factory, ILogger logger) { this._Factory = factory; this._logger = logger; } public IActionResult Index() { var msg = _user.Sum(); this._Factory.CreateLogger ().LogError("这里出现了一个错误"); this._logger.LogError("出现了严重的错误!"); return Content("OK"); } } }
log4net.config 配置文件 注意:这个配置文件的最外层用
"1.0" encoding="utf-8"?>"RollingAppender" type="log4net.Appender.RollingFileAppender"> "log\log.txt"/> "true"/> "Composite"/> "false"/> "yyyyMMdd.TXT"/> "20"/> "5MB"/> "log4net.Filter.LevelRangeFilter"> "LevelMin" value="ALL"/> "LevelMax" value="FATAL"/> "log4net.Layout.PatternLayout"> "%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> "ALL"/> "ALL"/> ref ref="RollingAppender"/>
方式二
Startup文件
public class Startup { //为StartUp.cs添加属性 public static ILoggerRepository repository { get; set; } public IConfiguration Configuration { get; } //构造函数注入:Configuration用于读取配置文件的 public Startup(IConfiguration configuration) { Configuration = configuration; repository = LogManager.CreateRepository("NetCoreApp"); //我的项目名称叫NetCoreApp //指定配置文件 XmlConfigurator.Configure(repository, new FileInfo("log4net.config")); } }
控制器中使用
using log4net; using Microsoft.AspNetCore.Mvc; namespace NetCoreApp.Controllers { public class HomeController : Controller { private ILog log; public HomeController() { this.log = LogManager.GetLogger(Startup.repository.Name, typeof(HomeController)); } public IActionResult Index() { log.Error("哈哈,出现错误啦"); return Content("OK"); } } }
log4net.config配置文件:注意,这个配置文件的最外层用
"1.0" encoding="utf-8"?>"RollingAppender" type="log4net.Appender.RollingFileAppender"> "log\log.txt"/> "true"/> "Composite"/> "false"/> "yyyyMMdd.TXT"/> "20"/> "5MB"/> "log4net.Filter.LevelRangeFilter"> "LevelMin" value="ALL"/> "LevelMax" value="FATAL"/> "log4net.Layout.PatternLayout"> "%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> "ALL"/> "ALL"/> ref ref="RollingAppender"/>
NetCore 使用Log4Net(两种方式)
标签:manager 构造 Once pen 方法 create 表示 mfile 反向代理
原文地址:https://www.cnblogs.com/kevin860/p/13170107.html
上一篇:js原型及原型链
评论
亲,登录后才可以留言!