nlog配置 - 基于时间的文件存档不起作用

时间:2013-02-28 10:14:00

标签: iis nlog

我已按照示例here在IIS中定义了基于时间的文件存档,如下所示

<nlog autoReload="true" throwExceptions="true" >
 <targets async="true">
  <target name="file" type="File"
        layout="${longdate} ${logger} ${message}"
        fileName="${basedir}/logs/logfile.txt"
        archiveFileName="${basedir}/logs/archives/log.{#}.${longdate}.txt"
        archiveEvery="Day"
        archiveNumbering="Rolling"
        maxArchiveFiles="31"
        concurrentWrites="true"
        keepFileOpen="false"
        encoding="iso-8859-2" />
 </targets>
<rules>
  <logger name="*" minlevel="Trace" writeTo="file" />
</rules>

虽然我已经创建了文件夹 - 文件没有存档。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我在所有项目中都使用了以下配置,似乎存档很好:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">

    <variable name="LogFileName" value="App"/>
    <variable name="LogFileExtension" value="log"/>
    <variable name="LogsLocation" value="c:\TempFiles\AppLogs" />

    <targets async="true">
      <target name="console" xsi:type="Console" />
      <target name="flatFileTarget" xsi:type="File"
              layout="${date:format=dd-MM-yyyy HH\:mm\:ss.fff} | ${message}"
              fileName="${LogsLocation}\${LogFileName}.${LogFileExtension}"
              archiveFileName="${LogsLocation}\${LogFileName}.{#####}.${LogFileExtension}"
              archiveAboveSize="500000" maxArchiveFiles="10"
              archiveNumbering="Rolling"
              createDirs="true"
              concurrentWrites="true"
              archiveEvery="Day"
              deleteOldFileOnStartup="true" />
    </targets>

    <rules>
      <logger name="*" writeTo="flatFileTarget" />
      <logger name="*" writeTo="console" />
    </rules>

  </nlog>

还要确保运行应用程序的用户对将创建日志文件的文件夹具有操作系统级别写入权限。 HTH。