Log4Net将日志文件放在年和月文件夹中

时间:2018-12-11 20:13:33

标签: c# logging log4net log4net-configuration log4net-appender

我尝试了在StackOverflow上找到的一些建议,最后得到了以下似乎可以完成工作的建议:

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        <file type="log4net.Util.PatternString" value="%appSetting{LogsFolder}\%date{yyyy}\%date{MM}\MyLogs.log" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value="ddMMyyyy" />
        <preserveLogFileNameExtension value="true" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger (%property{culture}) %identity - %message%newline" />
        </layout>
    </appender>

但是,几个月的日志记录后,我发现配置不正确,但是我看不到是什么原因引起的。

我得到的文件夹结构的开头是 year ,然后是 month ,但是我仍然没有 12 的文件夹(12月) )。我拥有的最新文件夹是 11 ,其中除了12月的日志外,还包含11月6日至30日的所有日志。

文件名是 MyLogs12112018.log 等,其中模式是日/月/年。

我真的很想在 MyLogs 和日期之间添加一个 dot (。),但这是次要的。

但是,为什么将日志文件放置在不正确的文件夹中?

2 个答案:

答案 0 :(得分:1)

以下内容如何:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="%appSetting{LogsFolder}" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyy\\MM\\'MyLogs.'ddMMyyyy'.log'" />
      <preserveLogFileNameExtension value="true" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger (%property{culture}) %identity - %message%newline" />
      </layout>
    </appender>

答案 1 :(得分:0)

尝试第二行:

/tmp> cat f1.csv
name,value1,value2,value3,value4
name1,100,200,0,0
name2,101,201,0,0
name3,102,202,0,0
name4,103,203,0,0
/tmp> cat f2.csv
name,value1,value2,value3,value4
name1,1000,2000,0,0
name2,1001,2001,0,0
name3,1002,2002,0,0
name4,1003,2003,0,0
/tmp>
/tmp> cat csv_add.ksh
perl -F, -lane '
@FH=@F  if $.==1;
if($.>1) {
         if( $F[0] ~~ @names )
        {
         @t1=@{ $kv{$F[0]} };
         for($i=0;$i<$#t1-1;$i++) { $t1[$i]+=$F[$i+1] }
         $kv{$F[0]}=[ @t1 ];
       }
        else {
        $kv{$F[0]}=[ @F[1..$#F] ];
        push(@names,$F[0]);
        }

}
END { print join(" ",@FH); for(@names) { print "$_,".join(",",@{$kv{$_}}) }}
close(ARGV) if eof
' f1.csv f2.csv
/tmp>
/tmp> csv_add.ksh
name value1 value2 value3 value4
name1,1100,2200,0,0
name2,1102,2202,0,0
name3,1104,2204,0,0
name4,1106,2206,0,0
/tmp>