添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

中文文档: https://www.cnblogs.com/animal/p/4062813.html

NLog是适用于各种.NET平台的免费日志记录平台。NLog可写入数据库,文件,控制台,并可即时更改日志记录配置。日志的配置可通过修改配置文件和修改代码, 修改配置文件后不必重启应用程序。

NLog可写入的目标类型:

  • 文件:通过自动文件命名和归档将日志写入任意数量的文件。 默认情况下,NLog不会锁定文件

  • 事件日志:可写入本地或远程

  • 数据库

  • 控制台:实时写入命令行控制台,包括消息的颜色编码

  • E-mail

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 , 可以轻松地 写入 多个目标。(数据库、文件、控制台), 并动.