Remember, you can now use the CronTriggeringPolicy which does not use the filePattern.
Ralph > On Jan 5, 2016, at 6:49 AM, Remko Popma <[email protected]> wrote: > > FWIW, decoupling the filePattern from the rollover frequency is one of the > things I had in mind with > > 1. LOG4J2-1198 <https://issues.apache.org/jira/browse/LOG4J2-1198 > <https://issues.apache.org/jira/browse/LOG4J2-1198>>. > > > On Tuesday, 5 January 2016, Gary Gregory <[email protected] > <mailto:[email protected]>> wrote: > >> On Mon, Jan 4, 2016 at 11:04 PM, Anshu Garg1 <[email protected] >> <javascript:;>> wrote: >> >>> Hi Ralph, >>> >>> We have actually tried log4j2, but unfortunately with that also we could >>> not meet our requirements >>> >>> We are trying a JSON log using rolling file appender based on both time >>> and size but we are facing below challenges >>> >>> 1. Apache log4j2 default roll over implementation adds time stamp to log >>> file name while saving and closing, while our requirement is to add time >>> stamp to file name at the time of file creation. For this we implemented >>> our own rollover strategy. But that was not a complete solution since >>> first file name was saved in rolling file appender without time stamp and >>> to change that we extended "AbstractOutputStreamAppender" to create our >>> own RollingFileAppender (but most of code in it is from Apache, except >>> what we had to modify to set first file name with time stamp). >>> >>> >> http://stackoverflow.com/questions/30059333/log4j2-rolling-appender-filename-sliding-according-to-pattern >>> >>> >>> >> http://stackoverflow.com/questions/14862770/log4j2-assigning-file-appender-filename-at-runtime >>> >>> >>> 2. Above lead to mismatch between the type of parameters in various >> other >>> classes' methods where default Apache classes' types were expected but >>> we were using our own implementation. So we had to use source code for >>> such classes as is and just replace parameters' types from default to our >>> implemented classes. >>> >>> 3. By default JSON Layout from Apache log4j2 has a non resolved defect >>> which does not write a valid JSON. Log entries do not have a comma >> between >>> then which results in invalid JSON. To rectify this we implemented our >> own >>> layout. This again has most of the code from Apache but few changes here >>> and there to get comma at start of each entry except first. >>> https://issues.apache.org/jira/browse/LOG4J2-908 >> >> >> Hello Anshu, >> >> LOG4J2-908 <https://issues.apache.org/jira/browse/LOG4J2-908> is fixed in >> Git master. You can build from Git and install locally or point your Maven >> build to our SNAPSHOT repository here: >> >> https://repository.apache.org/content/repositories/snapshots/ >> >> >>> >>> 4. We had to customize header and footer values as per our requirement, >>> since default in Apache default header is "[" and footer is "]". While we >>> needed more information in header section. >>> >> >> If you want to make the "[" and "]" customizable for the JSON layout, >> please create a JIRA. Can you describe the use case please? That would make >> for a better story in the documentation. >> >> >>> 5. With Apache log4j2's default behavior for time based rollover >>> duration's unit was determined by file pattern. We had to make duration >>> time unit independent of file pattern because with default behavior if a >>> user wanted time stamp in file name till mili seconds then even file >>> rollover would happen in mili seconds which is not desired. And if user >>> wanted hourly or daily roll over then file stamp could only be used till >>> date or hour. To be able to specify duration in a definite unit (minutes >>> in our case) we had to implement our own PatternProcessor. >>> https://issues.apache.org/jira/browse/LOG4J2-573 >>> >>> 6. We needed to add some custom log fields in JSON logs for which we had >>> to write our own LogEntry and MessageFactory. >>> >> >> Can you be more specific please? >> >> >>> >>> All above needed to write own classes with most functionality copied from >>> Apache which means we could not achieve above with just extending the >>> Apache classes. We had to make source code changes which we want to >> avoid. >>> Do you have any suggestion to overcome above without having to fork code >>> of Log4j2 ? >>> >> >> You've come to the right place. Let's start with your validation that >> https://issues.apache.org/jira/browse/LOG4J2-908 has been fixed for your >> use case. >> >> Gary >> >> >>> We did not find any solution to above so we came back to Log4j1. Is there >>> a way round to get footer in Log4j1 or Log4j2, with above requirements, >>> without having to change source code ? >>> >>> >>> -Thanks & Regards, >>> Anshu Garg >>> Platform Technology Center, India >>> >>> >>> >>> >>> >>> From: Ralph Goers <[email protected] <javascript:;>> >>> To: Log4J Users List <[email protected] <javascript:;>> >>> Date: 01/05/2016 12:04 PM >>> Subject: Re: Using log4j1.2.17 foter is not getting added to each >>> log file in rollingfileappender >>> >>> >>> >>> Please see >>> >>> >> https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces >>> < >>> >>> >> https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces >>>> . >>> >>> Ralph >>> >>>> On Jan 4, 2016, at 11:14 PM, Anshu Garg1 <[email protected] >> <javascript:;>> wrote: >>>> >>>> Hi, >>>> >>>> We have extended patternlayout to set custom footer and header. Now >> when >>> >>>> we use this pattern in rolling file appender footer is only added to >>> last >>>> log file generated while header is added to all files. Our requirement >>> is >>>> to have footer also added to files created. Any suggestion? Here is the >>>> snippet. >>>> >>>> Logger logger = Logger.getLogger("myLogger"); >>>> CustomPattern pattern = new CustomPattern(); >>>> pattern.setHeader("HeaderText"); >>>> pattern.setFooter("FooterText"); >>>> rollingFileAppender.setLayout(pattern); >>>> >>>> -Thanks & Regards, >>>> Anshu Garg >>>> Platform Technology Center, India >>>> >>> >>> >>> >>> >>> >> >> >> -- >> E-Mail: [email protected] <javascript:;> | [email protected] >> <javascript:;> >> Java Persistence with Hibernate, Second Edition >> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/>> >> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ >> <http://www.manning.com/tahchiev/>> >> Spring Batch in Action <http://www.manning.com/templier/ >> <http://www.manning.com/templier/>> >> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> >> Home: http://garygregory.com/ <http://garygregory.com/> >> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
