Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用log4net在日志文件中添加空行?_C#_Winforms_Log4net - Fatal编程技术网

C# 如何使用log4net在日志文件中添加空行?

C# 如何使用log4net在日志文件中添加空行?,c#,winforms,log4net,C#,Winforms,Log4net,我使用了RollingFileAppender。我想在程序启动时在日志中添加一个空行。怎么做?谢谢 编辑: 好的,谢谢大家。对不起,我问了个困惑的问题。 让我解释一下。 我将log4net配置如下: <log4net> <appender name="MyFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="ClientLog.log" /

我使用了RollingFileAppender。我想在程序启动时在日志中添加一个空行。怎么做?谢谢

编辑: 好的,谢谢大家。对不起,我问了个困惑的问题。 让我解释一下。 我将log4net配置如下:

<log4net>
  <appender name="MyFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="ClientLog.log" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%date{yyyy/MM/dd HH:mm:ss},%5p,%m%n" />
    </layout>
  </appender>

  <logger name="GlobalUse" >
    <level value="Info"/>
    <appender-ref ref="MyFileAppender" />
  </logger>

</log4net>
我希望让日志看起来像这样:

2010/03/27 13:55:27, INFO, Program start.
2010/03/27 13:55:29, INFO, Program end.

2010/03/27 13:56:30, INFO, Program start.
2010/03/27 13:56:32, INFO, Program end.

2010/03/27 13:57:30, INFO, Program start.
...

有什么想法吗?谢谢。

Log.Debug(Environment.Newline)

您需要一个特殊的附加器。这里有一个配置示例


<log4net>
  ...
  <appender name="MyRollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="C:\temp\mylog.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <staticLogFileName value="true" />
    <maximumFileSize value="2MB" />
    <maxSizeRollBackups value="20" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%message%newline" />
    </layout>
  </appender>

  <logger name="MyLogger">
    <level value="Info" />
    <appender-ref ref="MyRollingLogFileAppender" />
  </logger>  
  ...
</log4net>

...
...
此配置允许插入一条完全为白色的白线()

要记录的代码是

LogManager.GetLogger(“MyLogger”).Info(“”)

最后一点意见:这允许你做我认为你想做的事情,但我不会在我自己的发展中这样做:-)如果我误解了你的问题,请让我知道

EDIT1此appedender/logger已添加到现有配置中。它将仅用于生成所需的白线。对于其余的日志记录,您将使用以前存在的记录器/追加器,

Change

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%message%newline" />
</layout>



这将在文件末尾添加两个换行符。第一个作为新行出现,第二个作为下一个日志的起点。

选择的答案比需要的困难得多。我不确定最初提出问题时它是否不存在,但正确的方法是在附加器的布局中使用
。大概是这样的:

2010/03/27 13:55:27, INFO, Program start.
2010/03/27 13:55:29, INFO, Program end.

2010/03/27 13:56:30, INFO, Program start.
2010/03/27 13:56:32, INFO, Program end.

2010/03/27 13:57:30, INFO, Program start.
...


这将在每次日志运行时插入一个空行作为页脚。更多详细信息如下:

对不起,为什么要添加白线?:-)而且。。你的问题是如何用log4net记录白线,或者把日志语句放在哪里?你是对的。我的问题是如何用log4net记录白线。你能告诉我怎么做吗?谢谢。内置页眉/页脚功能有什么问题(请参阅)谢谢您的回答。但这会使我每次登录时都插入一个新行。我对我的问题作了一些解释。如果你对这个问题还感兴趣的话,你可以看看。谢谢你的回答。我编辑了这个问题。这也许更清楚。您的解决方案确实可以添加换行符。但是最后一条日志线会有点奇怪,对我来说非常有用。同意这比公认的答案简单得多。@Nick这似乎没有解决原始问题中的要求。要求在程序运行结束时插入一个空行。此解决方案在每个日志条目后插入一个空行。@kannankeril我在一些程序中使用此精确配置已有几年了,我确信它们仅在日志记录结束时(通常在程序终止时)才打印页脚。您是否手动关闭流?或者Log4net改变了它们处理页脚的方式(或者有一个bug)——我已经转到了nLog,所以我不能肯定。然而,由于log4net仍按预期工作,所以log4net没有改变。我认为你的问题与你在kannankeril的设置有关
<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%message%newline%newline" />
</layout>