我不希望nlog为每个millisec创建日志文件

时间:2016-01-13 11:14:29

标签: nlog

我使用以下配置。这会为每毫秒创建一个日志文件。 我想每次执行只需要一个日志文件,并且应该加上时间戳

<?xml version="1.0" encoding="utf-8"?>

<configuration>
 <configSections>
 <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>


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

<targets>
      <target name="logfile" xsi:type="File"    fileName="C:\log\log-     ${date:format=dd/MM/yyyy HH\:mm\:ss}.txt"></target>   
</targets>

<rules>
  <logger name="*" minlevel="Info" writeTo="logfile" />
</rules>

2 个答案:

答案 0 :(得分:1)

执行此操作的唯一方法是以编程方式设置fileName。

E.g。

<table id="maintable">
    <tr id="firstrow">
        <th id="header" colspan="3"></th>
    </tr>
    <tr id="menu">
        <td colspan="3">
            <?php
                include 'pagecontent/link.php';
            ?>
        </td>
    </tr>
    <tr id="secondrow">
        <td id="leftcol"></td>
        <td id="maincol">
            <?php
            include 'pagecontent/main.php';
            ?>
        </td>
        <td id="rightcol"></td>
    </tr>
    <tr id="footer" >
        <td colspan="3"></td>
    </tr>
</table>

请参阅API docs

答案 1 :(得分:1)

已为processinfo-layout-renderer提交了PR,因此它可以按所需格式输出进程启动时间。但它只支持本地时间

fileName="C:\log\log-${processinfo:property=StartTime:format=yyyy-MM-dd_HHmmss}.log"