zoukankan      html  css  js  c++  java
  • NLog输出目标及类型

    targets:输出目标节点

    target:配置一个输出目标

    Type输出类型:

    •   Console        输出到控制台
    •   Debugger     输出到VS输出窗口
    •   File        输出到文件
    •   Mail        输出为邮件发送
    •   Network        输出到网络地址
    •   Database        输出到数据库
    <targets async=” Boolean”>  //是否异步
      <target
     xsi:type="File"               //输出类型
              name="String"                //节点名称
              layout="Layout"             //日志输入格式
              header="Layout"             //日志头显示的文本内容
              footer="Layout"             //日志尾显示的文本内容
              encoding="Encoding"        //文件编码格式
              lineEnding="Enum"          //行结束模式
              archiveAboveSize="Long"            //存档上限值
              maxArchiveFiles="Integer"         //保存的最大存档文件数,默认9
              archiveFileName="Layout"          //存档文件名称。允许使用Layout
              archiveNumbering="Enum"           //存档文件的编号方式
              archiveEvery="Enum"                //是否在每个设定时间刻自动存档日志文件
              replaceFileContentsOnEachWrite="Boolean"  //是否覆盖每次写入的日志内容,默认false
              fileAttributes="Enum"                 //文件属性(只支持Windows)
              fileName="Layout"    //写入日志的文件名称 支持Layout
              deleteOldFileOnStartup="Boolean"   //启动时,是否删除旧的日志文件 。默认为false
              enableFileDelete="Boolean"    //否允许删除日志文件。默认为true
              createDirs="Boolean"           //是否允许自动创建(不存在的)目录。默认为true。
              concurrentWrites="Boolean"  //是否允许使用通过多个进程的方式,将日志信息并行写入文件中。,默认为true
              openFileCacheTimeout="Integer"  //文件保持打开状态的最大时间秒数
              openFileCacheSize="Integer"   //保持打开状态的文件数量
              networkWrites="Boolean"  //是否通过多线程由不同的网络主机并行向文件中写入日志默认false
              concurrentWriteAttemptDelay="Integer"
              concurrentWriteAttempts="Integer"
              bufferSize="Integer"  //日志文件缓存区大小(字节) 默认值为32768(32KB)
              autoFlush="Boolean"   //在每次日志信息后,是否自动刷新文件缓存区 默认true
              keepFileOpen="Boolean" //是否保持日志文件处于打开状态,以代替其在每次日志写事件发生时频繁打开和关闭默认值为false。
    备注:设置此属性为true,有助于提高性能。
    />
    </targets>
    View Code

    具体参数说明:

    layout – 日志呈现的文本内容。默认为:

     ${longdate}|${level:uppercase=true}|${logger}|${message}

     

    lineEnding – 行结束模式。

    可选值:

    •   CR – 在每尾部插入回车符号(ASCII 13)。
    •   CRLF – 在每行尾部插入回车和换行符号(ASCII 13 & ASCII 10)。
    •   Default – 在每行尾部插入平台相关的行结束符号(默认)。
    •   LF - 在每行尾部插入换行符号(ASCII 10)。
    •   None – 不插入任何行结束符号。

     

    archiveAboveSize – 存档上限值。当日志文件大于此值是,将自动存档。其类型为Long。

    注意:在多进程并发记录日志的情况下,启用该选项可能会大幅降低日志记录速度。在单进程时,为了达到最佳性能,可以考虑设置ConcurrentWrites为false。

    archiveEvery – 是否在每个设定时间刻自动存档日志文件。

    可选值:

    • Day – 每日存档。
    • Hour – 每小时存档。
    • Minute – 每分钟存档。
    • Month – 每月存档。
    • None – 不按时间固定存档。
    • Year – 每年存档。

    备注:作为写日志的一部分,文件移动到存档位置的操作发生的时间变换时刻。例如,当前时间从10点变至11点,则当在写第11点或11点之后的第一个写操作时,触发日志文件归  档。

    注意:在多进程并发记录日志的情况下,启用该选项可能会大幅降低日志记录速度。在单进程时,为了达到最佳性能,可以考虑设置ConcurrentWrites为false。

    filename – 写入日志的文件名称。支持Layout。

    备注:文件名字符串中可能包含布局呈现器中的实例变量。这样可以通过配置单个目标节点,而将日志写入多个文件中。

    以下fileName属性值将使得NLog在应用程序启动目录下,根据日志级别不同,将日志信息写到不同的文件中。

    ${basedir}/${level}.log

    因此,所有的Debug级别日志写入到Debug.log文件中,所有的Info级别日志写入到Info.log文件中,其它以此类推。同时,也可以结合其它布局呈现器实例,组成所要的日志文件名称。

     deleteOldFileOnStartUp – 启动时,是否删除旧的日志文件。其取值类型为Boolean,默认为false。

    备注:此选项,仅在“fileName”参数为单个文件时有效。

    性能优化选项

     concurrentWirtes – 是否允许使用通过多个进程的方式,将日志信息并行写入文件中。其取值类型为Boolean,默认为true。

    备注:这使得多进程记录日志成为可能。NLog使用一种特别的技术使用文件保持打开状态以备写入。

     openFileCacheTimeout – 文件保持打开状态的最大时间秒数。如果这个数字为负数,则在一定不活动时间后,文件不会自动关闭。其取值类型为Integer,默认值为-1。(即默 认状态下文件始终处于打开状态以备写入。)

    openFileCacheSize – 保持打开状态的文件数量。当通过设置单个文件类型目标,且结果写入多个不同文件(如根据日志等级或日志对象名称)时,则可将此属性设置为一个较 高的值以改善性能。其取值类型为Integer,默认值为5。

    备注:这些文件是在最近最少使用算法基础管理的,此算法在缓存空间不足时将最长时间内没有使用的文件Flush。一般来说,不应当把此参数设置过大,最好不要超过10-15,这是因同时保持多个文件处于打开状态,对系统资源来说是一个很大的消耗。

    networkWrites – 是否通过多线程由不同的网络主机并行向文件中写入日志。其取值类型为Boolean,默认值为false。

    备注:通过此此种方式,可以有效阻止文件长期保存为打开状态。

    concurrentWriteAttemptDelay – 在再次尝试将日志写入文件之前延迟的毫秒数。其取值类型为Integer,默认值为1。

    备注:实际的延迟时间,是一个介于0到指定参数值之间的随机整数,且在每次尝试失败之后,都会将此参数加倍。假使此参数值为10,则第一次重试写入 的延迟时间(毫秒数)在 0-10之间的一个随机数,第二次重试时为0-20之间的一个随机数,第三次重试时为0-40之间的一个随机数,第四次重试时为0-80之间的一个随机数 等等,以此类推。

    concurrentWriteAttempts – 在NLog丢弃日志信息之前的追加(尝试重写)写次数。其取值类型为Integer,默认值为10。

    bufferSize – 日志文件缓存区大小(单位:字节)。其取值类型为Integer,默认值为32768(32KB)。

    autoFlush – 在每次日志信息后,是否自动刷新文件缓存区。其取值类型为Boolean,默认值为true。

    keepFileOpen – 是否保持日志文件处于打开状态,以代替其在每次日志写事件发生时频繁打开和关闭。其取值类型为Boolean,默认值为false。

    备注:设置此属性为true,有助于提高性能。

  • 相关阅读:
    std 迭代器的几种用法
    Cocos2dx3.1+xcode +lua配置
    php获取文件创建时间、修改时间
    如何创建一个基于jquery的编辑器
    封装ajax,简单的模仿jquery提交
    如何实现SQL事务的提交,又不对外进行污染
    .net mvc结合微软提供的FormsAuthenticationTicket登陆
    Http GET、Post方式的请求总结
    post 报文请求接口方法
    zip格式压缩、解压缩(C#)
  • 原文地址:https://www.cnblogs.com/tongyi/p/NLog.html
Copyright © 2011-2022 走看看