[ https://issues.apache.org/jira/browse/LOG4J2-486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13864089#comment-13864089 ]
Joe Merten commented on LOG4J2-486: ----------------------------------- Yep, {{packages="eeo.toolbox"}} was the trick to get my factory method called :). Now I'm able to write to the bottom of the old as well as to the top of the new logfile using a simple FileWriter like this: {code:borderStyle=solid} static class MyAction implements Action { final Action delegate; final String fileName; public MyAction(final Action delegate, final String fileName) { this.delegate = delegate; this.fileName = fileName; } @Override public void run() { delegate.run(); } @Override public boolean execute() throws IOException { try { BufferedWriter writer = null; try { writer = new BufferedWriter(new FileWriter(new File(fileName), true)); writer.write("****************************\n"); writer.write("*** Bye, bye old logfile ***\n"); writer.write("****************************\n"); } finally { if (writer != null) writer.close(); } } catch (Throwable e) { logger.error("Writing to bottom of old logfile \"" + fileName + "\" with", e); } boolean ret = delegate.execute(); try { BufferedWriter writer = null; try { writer = new BufferedWriter(new FileWriter(new File(fileName), true)); writer.write("*************************\n"); writer.write("*** Hello new logfile ***\n"); writer.write("*************************\n"); } finally { if (writer != null) writer.close(); } } catch (Throwable e) { logger.error("Writing to top of new logfile \"" + fileName + "\" with", e); } return ret; } {code} {color:gray} ( … but I think my solution will not longer work as soon as [#239|LOG4J2-239] is implemented, so I'll be happy if there was a appropriate callback provided in future versions … ) {color} Could you give me a hint how I can use the configured PatternLayout to write to the logfiles? > RollingFile Appender - add custom info at the start of each logfile > ------------------------------------------------------------------- > > Key: LOG4J2-486 > URL: https://issues.apache.org/jira/browse/LOG4J2-486 > Project: Log4j 2 > Issue Type: Question > Components: Appenders > Affects Versions: 2.0-beta9 > Environment: Java 1.7, Linux > Reporter: Joe Merten > Attachments: MyRolloverStrategy.java, log4j2.xml > > > I post this question here because of a hint of Remko Popma. > See also: > * > http://apache-logging.6191.n7.nabble.com/log4j2-getting-started-amp-rolling-files-tt8406.html#a42402 > * > http://stackoverflow.com/questions/20819376/log4j2-rollingfile-appender-add-custom-info-at-the-start-of-each-logfile > I want to add some custom info at the top of each logfile, like the version > string of my application, the application uptime and the system uptime. And > even writing some »bye, bye / eof« to the bottom of the just closed logfile > would also be fine. > Because there is no appropriate hook or callback to get notified when the > RollingFileAppander is creating / has created a new file, so that I can put > my things at first into these new logfile, I tried to extend > DefaultRolloverStrategy. But currently, I stuck at some points. > Seems that I have to deal with {{@Plugin}} and {{@PluginFactory}}. My try > with the attached log4j2.xml and MyRolloverStrategy.java compiles without > errors and warnings. But when I start the application, I get this error > message: > {{2014-01-05 23:22:05,876 ERROR RollingFile contains an invalid element or > attribute "MyRolloverStrategy"}} > And then the next step would be: "how to write to the logfiles within my > rollover method?" > log4j2.xml : > {code} > <?xml version="1.0" encoding="UTF-8"?> > <Configuration> > <Properties> > <Property name="projectPrefix">Tts</Property> > <Property name="rawPattern">%d %-5p [%t] %C{2} (%F:%L) - %m%n</Property> > <Property name="coloredPattern">%d %highlight{%-5p}{FATAL=bright red, > ERROR=red, WARN=yellow, INFO=cyan, DEBUG=green, TRACE=bright blue} > %style{[%t] %C{2} (%F:%L) -}{bright,black} %m%n</Property> > <Property name="coloredShortPattern">%d %highlight{%-5p}{FATAL=bright > red, ERROR=red, WARN=yellow, INFO=cyan, DEBUG=green, TRACE=bright blue} > %style{[%t] -}{bright,black} %m%n</Property> > <Property name="fileName">Log/${projectPrefix}.log</Property> > <Property name="filePattern">Log/${projectPrefix}-%i.log</Property> > </Properties> > <Appenders> > <Console name="Stdout" target="SYSTEM_OUT"> > <PatternLayout pattern="${coloredPattern}"/> > </Console> > <RollingFile name="Logfile" fileName="${fileName}" > filePattern="${filePattern}"> > <PatternLayout pattern="${rawPattern}"/> > <Policies> > <SizeBasedTriggeringPolicy size="16 MB"/> > </Policies> > <eeo.toolbox.MyRolloverStrategy fileIndex="min" max="16"/> > </RollingFile> > </Appenders> > <Loggers> > <Root level="info"> > <AppenderRef ref="Stdout"/> > <AppenderRef ref="Logfile"/> > </Root> > </Loggers> > </Configuration> > {code} -- This message was sent by Atlassian JIRA (v6.1.5#6160) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org