马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
先容
日记纪录是应用步调的核心。它对于调试和故障打扫以及应用步调的流通性非常紧张。
借助日记纪录,我们可以对本地体系举行端到端的可视性,而对于基于云的体系,我们只能提供一小部分可视性。您可以将日记写入磁盘或数据库中的文件,并发送错误电子邮件。 为 Log4Net 安装 NuGet 包
要使用 Log4Net 日记纪录,起首必要添加 Log4Net 插件。要添加插件,您可以通过两种差异的方式举行。 您可以在下面找到 Log4Net 所需的 NuGet 下令。
PM> Install-Package log4net -Version 2.0.8
大概,您可以 Microsoft.Extensions.Logging.Log4Net.AspNetCore
更新启动文件
我们必要将Log4Net中央件注册到启动设置部分,如下所示:
public void Configure(IApplicationBuilder app,
IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddLog4Net();
}
添加 log4net.config 文件
我们必要点击“添加新”来向您的项目添加一个名为log4net.config的文件。
请参阅以下 log4net.config 代码日记文件。
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingmodel type="log4net.Appender.FileAppender+MinimalLock">
<file value="logs/">
<datepattern value="yyyy-MM-dd hh.'txt'">
<staticlogfilename value="false">
<appendtofile value="true">
<rollingstyle value="Composite">
<maxsizerollbackups value="2">
<maximumfilesize value="15MB">
<layout type="log4net.Layout.PatternLayout">
<conversionpattern value="%level %message %date">
</conversionpattern></layout>
</maximumfilesize></maxsizerollbackups></rollingstyle></appendtofile></staticlogfilename></datepattern></file></lockingmodel></appender>
<root>
<level value="ALL">
<appender-ref ref="RollingLogFileAppender">
</appender-ref></level></root>
</log4net>
Root 在 log4net.config 中是必须的,我们可以在此中界说日记级别和 appender-ref 来界说附加步调。比方 - FileAppender、ConsoleAppender。
<root>
<level value="ALL">
<appender-ref ref="RollingLogFileAppender">
</appender-ref></level></root>
布局
在布局中,我们可以界说自界说参数,如下所示。
<layout type="log4net.Layout.PatternLayout">
<conversionpattern value="%level %message %date">
</conversionpattern></layout>
日记级别
共有 7 个日记纪录级别。
- 关闭-不纪录任何内容(无法调用)
- 致命的
- 错误
- 告诫
- 信息
- 调试
- ALL-全部内容都会被纪录(无法调用)
差异的 Appender
- 滚动文件附加器 - 它写入输出窗口或下令窗口。
- 文件附加器-此附加器将写入文本文件。
- ADO.NET Appender-此附加器将写入数据库。
- 控制台附加器 - 此附加器实行与文件附加器雷同的功能,但附加了仅在启动新日记文件之前存储肯定量数据的选项。
Log4Net 的日记管理器
public static class Logger
{
private static readonly string LOG_CONFIG_FILE = @"log4net.config";
private static readonly log4net.ILog _log = GetLogger(typeof(Logger));
public static ILog GetLogger(Type type)
{
return LogManager.GetLogger(type);
}
public static void Debug(object message)
{
SetLog4NetConfiguration();
_log.Debug(message);
}
private static void SetLog4NetConfiguration()
{
XmlDocument log4netConfig = new XmlDocument();
log4netConfig.Load(File.OpenRead(LOG_CONFIG_FILE));
var repo = LogManager.CreateRepository(
Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));
log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);
}
}
加载并读取 Log4Net 设置文件
您必要将设置文件定名为步调集名称,而且必要具有您指定的扩展名。以下是示例。
Private static void SetLog4NetConfiguration()
{
XmlDocument log4netConfig = new XmlDocument();
log4netConfig.Load(File.OpenRead(LOG_CONFIG_FILE));
var repo = LogManager.CreateRepository(
Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));
log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);
}
参考开源地点:GitHub - huorswords/Microsoft.Extensions.Logging.Log4Net.AspNetCore: Allows to configure Log4net as Microsoft Extensions Logging handler on any ASP.NET Core application. Original code proposal by @anuraj --> https://dotnetthoughts.net/how-to-use-log4net-with-aspnetcore-for-logging/
假如您喜欢此文章,请收藏、点赞、批评,谢谢,祝您快乐每一天。
|