3

我已经按照这里的示例并在我的 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>

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

4

1 回答 1

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。

于 2013-04-22T10:01:03.237 回答