.NET Core下使用Log4Net记录日志的方法步骤
更新时间:2020年09月25日 08:34:30 作者:阿星Plus
这篇文章主要介绍了.NET Core下使用Log4Net记录日志的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Log4Net 相信大家都很熟悉了,算是比较主流和著名的日志组件了。
官网: logging.apache.org
开源地址: github.com/apache/logging-log4net
最佳实践
在项目中添加组件包
Install-Package log4net
添加 log4net.config 文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net debug="false">
<appender name="info" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log4net/info/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="-1"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value="yyyyMMdd\\\\HH".log"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%n
{
"system": "Meowv.Blog",
"datetime": "%d",
"description": "%m",
"level": "%p",
"info": "%exception"
}" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="INFO" />
</filter>
</appender>
<appender name="error" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log4net/error/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="-1"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value="yyyyMMdd\\\\HH".log"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%n
{
"system": "Meowv.Blog",
"datetime": "%d",
"description": "%m",
"level": "%p",
"info": "%exception"
}" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="ERROR" />
</filter>
</appender>
<root>
<level value="ALL"></level>
<appender-ref ref="info"/>
<appender-ref ref="error"/>
</root>
</log4net>
</configuration>
控制台项目
using log4net;
using log4net.Config;
using System;
using System.IO;
using System.Reflection;
namespace ConsoleAppDemo
{
class Program
{
static void Main(string[] args)
{
var log4netRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(log4netRepository, new FileInfo("log4net.config"));
ILog log = LogManager.GetLogger(log4netRepository.Name, "NETCorelog4net");
log.Info("NETCorelog4net log");
log.Info("test log");
log.Error("error");
log.Info("linezero");
Console.ReadKey();
}
}
}
AspNetCore项目
新建一个静态类,写一个扩展方法 UseLog4Net() ,用于 log4net 初始化。
public static class Log4NetExtensions
{
public static IHostBuilder UseLog4Net(this IHostBuilder hostBuilder)
{
var log4netRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(log4netRepository, new FileInfo("log4net.config"));
return hostBuilder;
}
}
扩展方法返回 IHostBuilder 对象,这样可以链式调用,美化代码,然后在 Program.cs 中使用扩展方法 UseLog4Net() 。
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
namespace WebAppDemo
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
}).UseLog4Net();
}
}
配置完成,然后在任意地方写入日志即可。
using log4net;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
namespace WebAppDemo.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILog _log;
public WeatherForecastController()
{
_log = LogManager.GetLogger(typeof(WeatherForecastController));
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
_log.Info("Hello, this is a Weather api!");
_log.Warn("Wran !!!");
_log.Error("Controller Error");
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
})
.ToArray();
}
}
}
到此这篇关于.NET Core下使用Log4Net记录日志的方法步骤的文章就介绍到这了,更多相关.NET Core Log4Net内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!
您可能感兴趣的文章:Asp.Net Core用NLog记录日志操作方法详解ASP.NET Core应用中如何记录和查看日志.Net Core 使用NLog记录日志到文件和数据库的操作方法
.NET
Core
Log4Net
相关文章
新手入门:C++下的引用类型新手入门:C++下的引用类型... 2006-09-09
IdentityServer4实现.Net Core API接口权限认证(快速入门)这篇文章主要介绍了IdentityServer4实现.Net Core API接口权限认证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2020-03-03
VS2015 搭建Asp.net core开发环境的方法最近想在vs2015体验下.net core,折腾了两天终于把环境弄好了。下面这篇文章就给大家分享下我的搭建过程,有需要的朋友们可以参考学习,下面来一起看看吧。 2016-12-12
Repeater绑定dictionary数据源代码及报错解决为大家讲解下Repeater绑定dictionary数据源以及报错处理的方法,感兴趣的朋友可以参考下哈,希望对你有所帮助 2013-04-04
.net 4.5部署到docker容器的完整步骤这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 2019-04-04
listview里的button事件添加方法搞了很长时间了,如何在listview button上添加事件监听,一直是网友们比较在意的,本文将为您解答此疑惑,需要了解的朋友可以参考下 2012-12-12
Asp.net 5种页面转向方法页面转向也是有技巧的,下面的是asp.net下的几种转向方法。 2009-02-02
.Net Core简单使用Mvc内置的Ioc(续)怎样直接获取Ioc中的实例对象,而不是以构造函数的方式进行获取呢?这篇文章继续为大家介绍.Net Core简单使用Mvc内置的Ioc 2018-03-03
asp.net下实现支持文件分块多点异步上传的 Web Servicesasp.net下实现支持文件分块多点异步上传的 Web Services... 2007-04-04
如何将Winform移植到.NET Core 3.0这篇文章主要介绍了如何将Winform移植到.NET Core 3.0,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2020-03-03
最新评论
本文由 华域联盟 原创撰写:华域联盟 » .NET Core下使用Log4Net记录日志的方法步骤
转载请保留出处和原文链接:https://www.cnhackhy.com/5054.htm