In log4j, we sometimes create a second logger and output CSV data to it as sort of a metrics watch of the application. This data is easily imported and graphed, as opposed to the normal log which we use for debugging and the like.
In old log4j we did this by subclassing the PatternLayout, overriding the header property, and specifying it as:
log4j.logger.servicePerformance=INFO, servicePerformance
log4j.appender.servicePerformance=mypackage.log4j.SingleHeaderFileAppender
log4j.appender.servicePerformance.File=logs/performance.log
log4j.appender.servicePerformance.layout=mypackage.log4j.HeaderLayout
log4j.appender.servicePerformance.layout.ConversionPattern=%m%n
log4j.appender.servicePerformance.layout.Header=Start Time, Service Invoked, Elapsed ms, Candidate Count, Asset Count
log4j.additivity.servicePerformance=false
I'm not sure how to do this in log4j 2 which we now have two applications recently converted to use.
Log4j2's PatternLayout also supports the header and footer attributes:
<PatternLayout>
<pattern>%d %p [%t] %c %m%n</pattern>
<header>This is a header</header>
<footer>(c) 1999-2014</footer>
</PatternLayout>
I think attributes work too:
<PatternLayout pattern="%d %p [%t] %c %m%n"
header="This is a header"
footer="(c) 1999-2014" />
This is not documented correctly, thanks for pointing this out.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With