log4jファイルに次の行を追加します。
log4j.appender.DRFA=org.apache.log4j.RollingFileAppender
log4j.appender.DRFA.MaxBackupIndex=100
log4j.appender.DRFA.MaxFileSize=10MB
ただし、この行は - という単語を含む最初の行の前に来る必要があります。日付パターン,線表示の有無にかかわらず
#log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
または
log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
注 - ファイルにDatePatternという単語が複数回表示される場合は、DatePatternを含む最初の行の前にのみこの3行を設定する必要があります。
例1(予想出力)
log4j.appender.DRFA=org.apache.log4j.RollingFileAppender
log4j.appender.DRFA.MaxBackupIndex=100
log4j.appender.DRFA.MaxFileSize=10MB
#log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
例2(予想出力)
log4j.appender.DRFA=org.apache.log4j.RollingFileAppender
log4j.appender.DRFA.MaxBackupIndex=100
log4j.appender.DRFA.MaxFileSize=10MB
log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
ベストアンサー1
使用awk
:
awk 'done != 1 && /DatePattern/ {
print "log4j.appender.DRFA=org.apache.log4j.RollingFileAppender"
print "log4j.appender.DRFA.MaxBackupIndex=100"
print "log4j.appender.DRFA.MaxFileSize=10MB"
done = 1
} 1' file >newfile && mv newfile file
DatePattern
ファイルで最初の一致が発生すると、3行が印刷されます。次に、その行が再印刷されないようにdone
フラグを設定します。1
最後に末尾がある場合、1
データのすべての行が印刷されます。
出力の3行の後に空白行が必要な場合は、最後の\n\n
文字列の末尾に追加してください。
出力が記録されnewfile
、awk
異常なエラーが発生しない場合、awk
プロセスが終了すると元の出力が置き換えられます。
コメントでリクエスト:行を追加する後ろに一致する行、
awk '1; done != 1 && /DatePattern/ {
print "log4j.appender.DRFA=org.apache.log4j.RollingFileAppender"
print "log4j.appender.DRFA.MaxBackupIndex=100"
print "log4j.appender.DRFA.MaxFileSize=10MB"
done = 1
}' file
パターンが一致したときに実行されるコードの前に移動します1
(各入力行は印刷されて置き換えることができます)。{ print }