我尝试了在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 (。),但这是次要的。
但是,为什么将日志文件放置在不正确的文件夹中?
答案 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>