中文文档:
https://www.cnblogs.com/animal/p/4062813.html
NLog是适用于各种.NET平台的免费日志记录平台。NLog可写入数据库,文件,控制台,并可即时更改日志记录配置。日志的配置可通过修改配置文件和修改代码,
修改配置文件后不必重启应用程序。
NLog可写入的目标类型:
1.以下target模板,适用于简单要求场景:保存7天的日志信息,当前日志名为logs_current.txt,过往日志名为logs_archive{1-7}.txt
<target name="file" xsi:type="File"
layout="${longdate} ${logger} ${threadid} ${message} ${exception:format=tostring}"
fileName="${basedir}/logs/logs_current.txt"
archiveFileName="${basedir}/logs/logs_archive.{#}.txt"
archiveEvery="Day"
archiveNumbering="Rolling"
maxArchiveFiles="7"
concurrentWrites="true"
keepFileOpen="false"
encoding="iso-8859-2" />
2.以下target模板:在日志信息中显示方法名称,只保存40天的日志,当前日志为logs_current.txt, 过往日志为logs_archive{Date}.zip。
<targets>
<target xsi:type="AsyncWrapper"
name=" fileInfo"
timeToSleepBetweenBatches="0"
queueLimit="1000000"
batchSize="1000"
overflowAction="Block">
<target name="file" xsi:type="File"
layout="${longdate} ${logger}.${callsite:className=False:fileName=False:includeSourcePath=False:methodName=True:cleanNamesOfAnonymousDelegates=True} ${threadid} ${message} ${exception:format=tostring}"
fileName="${basedir}/logs/logs_current.txt"
archiveFileName="${basedir}/logs/logs_archive.{#}.zip"
archiveEvery="Day"
archiveNumbering="Date"
maxArchiveFiles="40"
enableArchiveFileCompression="true"
concurrentWrites="true"
keepFileOpen="true"
encoding="iso-8859-2" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Info" maxlevel="Info" writeTo="fileInfo" />
</rules>
代码的调用
private static readonly ILogger logger = LogManager.GetCurrentClassLogger();
写入日志:
logger.Info("Start");
logger.Error(e);
Note:
xsi:type
=
"
AsyncWrapper
"
:异步写入日志
timeToSleepBetweenBatche
设置
批次之间休眠的时间
,设置为0或1则是
只有在写入日志时,才触发计时器
queueLimit
-
缓存队列的大小。默认
1000
batchSize
-
一个批次处理的事件数量。默认:
100
(
NLog 4.4.2
和更高版本的默认值:
200)
overflowAction
-
当缓冲区溢出时的行为。默认:
Discard
-
Block -
阻止写入直到缓冲区有空间
-
Discard -
抛弃溢出的数据
.
-
Grow -
增大缓冲区
keepFileOpen
-设置是否保持日志文件打开,而不是在每次记录事件时打开和关闭它。 将此属性更改为true可以大大提高性能。
文件配置的详细信息,可参考官方文档:
https://github.com/NLog/NLog/wiki/File-target
Nlog
配置简单比较简单,相比较Log4net有点重量级(大型项目个人推荐用它,毕竟可支持分布式
日志
收集),当然他们都是很犀利的
日志
库(http://stackoverflow.com/questions/710863/log4net-vs-
nlog
)
贴下配置代码:
<
nlog
xmlns="http://www.
nlog
-project.org/schemas/
NLog
.xsd"
翻译:CrazyCoder(由衷感谢他的热心!!)
原文:http://www.
nlog
-project.org/howto_optimize_performance.html
更多关于
NLog
的中文文章,请参考《
NLog
文章系列》。
日志
的记录有
日志
功能本来是一件非常好的事情,能帮助我们分析和解决很多问题。但是,如果让
日志
影响到性能,这就需要权衡一下了。没关系,本篇博客咱们不仅来解决这个问题,咱们更要眼见为实,带图带真相让你用的明明白白。
那好,那如何让
日志
实现
异步
功能呢。其实呢就一句话。。
配置文件targets中配置async="true"即为
异步
。默认或写false都为同步。
接下来让我们开始测试
日志
是每个程序的基本模块。本文是为了探究如何通过
NLog
方便及记录
日志
并通过Log4View工具收集
日志
统一查看。
为什么是
NLog
?
下载量
NLog
和Log4Net差不多,这两个
日志
模块是.Net平台
使用
最多的两大
日志
模块。
Log4Net上次更新已经是17年3月
NLog
更新的比较频繁,开发者比较活跃,有问题的话修复更及时。
NLog
是适用于各种.net平台(包括.net standard)的灵活而免费的
日志
记录平台。通过
NLog
, 可以轻松地
写入
多个目标。(数据库、文件、控制台), 并动.