我的目标是使用log4j
将(json格式的)消息滚动到日志文件中,并使得到的日志文件成为json有效的结构。我目前在log4j.properties
中拥有的是:
log4j.rootLogger=INFO, FILE
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.Append=true
log4j.appender.FILE.File=out.log
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.FILE.layout=com.foobar.CustomLayout
log4j.appender.FILE.layout.ConversionPattern=%m,%n
CustomLayout
的样子:
class CustomLayout extends PatternLayout {
@Override
String getHeader() {
return "[\n"
}
@Override
String getFooter() {
return "{}\n]"
}
}
但是,在我执行结束时,我的所有文件都不 json-valid,因为它们是没有右括号,即:
[
{},
{},
有关如何解决此问题并使每个滚动文件包含我在CustomLayout
中定义的标题和页脚的任何想法?
答案 0 :(得分:0)
LogleJ在Appender上调用close()时将页脚添加到日志中,如此处所述(https://books.google.ch/books?id=vHvY008Zq-YC&pg=PA89&lpg=PA89&dq=log4j+add+footer&source=bl&ots=yj900eYY7F&sig=WcuhzutCtZ5ZBlV6SpB084sVkkI&hl=de&sa=X&ved=0ahUKEwjRvtD5xrjNAhUIShQKHfxnDJ44ChDoAQgfMAE#v=onepage&q=log4j%20add%20footer&f=false)。您可能需要手动关闭appender才能添加页脚