All good, no worries. Glad things are working well for you. Sent from my iPhone
> On 2016/02/04, at 22:18, Veit Guna <veit.g...@gmx.de> wrote: > > Makes sense. > > Meanwhile I created an isolated testcase. Seems I have to buy me a new set of > glasses. It works as expected - of course ;). > Re-trying that on my application seems to work as well. Can't say for sure > what I did wrong back then. > > Sorry for any inconvenience! > > Cheers > Veit > > > Gesendet: Donnerstag, 04. Februar 2016 um 02:19 Uhr > Von: "Remko Popma" <remko.po...@gmail.com> > An: "Log4J Users List" <log4j-user@logging.apache.org> > Betreff: Re: RollingRandomAccessFile and emtpy log file > Just wondering if it really is a problem in the logging library or if it > appeared that way because things were not refreshing on your screen properly. > > Sent from my iPhone > >> On 2016/02/04, at 8:32, Veit Guna <veit.g...@gmx.de> wrote: >> >> Yes it was Windows, but I had Notepad++ open to reload the content :)... >> >> >>> Am 04.02.2016 um 00:30 schrieb Remko Popma: >>> Was this in Windows? Sometimes Explorer doesn't update until you refresh... >>> >>> Sent from my iPhone >>> >>>> On 2016/02/04, at 7:34, Veit Guna <veit.g...@gmx.de> wrote: >>>> >>>> Hi Remko. >>>> >>>> It even didn't flush after I had written 600 KB to it - only after I had >>>> stopped tomcat - but I will doublecheck and provide a testcase then. >>>> >>>> I haven't experimented with smaller buffer sizes yet. But I'll look into >>>> that too. >>>> >>>> Thanks for your help. >>>> >>>> Veit >>>> >>>>> Am 03.02.2016 um 23:28 schrieb Remko Popma: >>>>> You mention that RollingRandomAccessFile appender with >>>>> immediateFlush=false and a buffer size of 256K did not flush to disk >>>>> until you logged 600KB. Looking at the code I don't see how this is >>>>> possible but you may have found a bug. Is this reproducible? If so, can >>>>> you raise a Jira with a small test program that reproduces the issue? >>>>> >>>>> Continuing our discussion about workarounds: >>>>> >>>>> You can use either appender. The performance numbers (random access file >>>>> appender being 1.3 - 2 times faster than file appender) are for >>>>> immediateFlush=false. I don't have numbers for immediateFlush=true. >>>>> >>>>> There's a separate attribute for setting the buffer size (for both >>>>> appenders). Perhaps a smaller buffer size would flush sooner, have you >>>>> experimented with that? >>>>> >>>>> Remko >>>>> >>>>> Sent from my iPhone >>>>> >>>>>> On 2016/02/04, at 0:06, Veit Guna <veit.g...@gmx.de> wrote: >>>>>> >>>>>> So, If I would like to use a rolling file appender with synchronous >>>>>> logging, but _with_ buffering and so _not_ flushing on every event what >>>>>> should >>>>>> I use? RollingRandomAccessFile with immediateFlush="true" or the >>>>>> "normal" RollingFileAppender :)? Does immediateFlush="true" take the >>>>>> buffer into account? >>>>>> >>>>>> Thanks >>>>>> Veit >>>>>> >>>>>> >>>>>> Gesendet: Mittwoch, 03. Februar 2016 um 13:43 Uhr >>>>>> Von: "Remko Popma" <remko.po...@gmail.com> >>>>>> An: "Log4J Users List" <log4j-user@logging.apache.org> >>>>>> Betreff: Re: Aw: Re: RollingRandomAccessFile and emtpy log file >>>>>> Sorry my message was unclear. >>>>>> >>>>>> RollingRandomAccessFile appender does not _need_ async loggers, it's >>>>>> just that if you choose to use async loggers, you will get the >>>>>> side-effect of regular flushing in the background. So it achieves your >>>>>> goal (of flushing the buffer to disk.) >>>>>> >>>>>> You can also set immediateFlush to true to achieve this, but this will >>>>>> write to disk on _every_ event *in your application thread*. >>>>>> >>>>>> If performance is important, async logging is 10-20 times faster than >>>>>> synchronous logging. The difference between the normal file appender and >>>>>> random access file is much smaller (random access file appender is only >>>>>> 1.3 - 2 times faster than file appender). >>>>>> >>>>>> :-) >>>>>> >>>>>> Sent from my iPhone >>>>>> >>>>>>> On 2016/02/03, at 21:01, Veit Guna <veit.g...@gmx.de> wrote: >>>>>>> >>>>>>> immediateFlush="true" seems to work - without adding async config >>>>>>> options. Adding the system property does also work, but needs >>>>>>> disruptor.jar on >>>>>>> the classpath - as it seems. Otherwise a ClassNotFoundException occurs. >>>>>>> Although the documentation states, that the RandomAccessFile appenders >>>>>>> do _not_ need the disruptor.jar ;). >>>>>>> >>>>>>> Ok then. Since I don't want to add an additional dependency, I would go >>>>>>> for immediateFlush="true". But now I'm wondering whether it would be >>>>>>> better to just use the normal RollingFileAppender with not specifying >>>>>>> flush behavior at all. Which one is faster in synchronous mode :)? >>>>>>> >>>>>>> Thanks >>>>>>> Veit >>>>>>> >>>>>>> >>>>>>> >>>>>>> Gesendet: Mittwoch, 03. Februar 2016 um 12:37 Uhr >>>>>>> Von: "Veit Guna" <veit.g...@gmx.de> >>>>>>> An: log4j-user@logging.apache.org >>>>>>> Betreff: Aw: Re: RollingRandomAccessFile and emtpy log file >>>>>>> Hi Remko. >>>>>>> >>>>>>> I've read about the AsyncLoggerContextSelector but I didn't try it - to >>>>>>> be honest. As the documentation doesn't state anything about >>>>>>> that the RollingRandomAccessFile appender needs async functionality, I >>>>>>> didn't took this into account. >>>>>>> Maybe there could be added some hint in the documentation about that >>>>>>> (needs async or not)? Or maybe just don't allow starting up log4j when >>>>>>> the configuration is (obviously) wrong :)? >>>>>>> >>>>>>> So I'll check for the async configuration option and report back. >>>>>>> >>>>>>> Thanks! >>>>>>> Veit >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Gesendet: Mittwoch, 03. Februar 2016 um 12:13 Uhr >>>>>>> Von: "Remko Popma" <remko.po...@gmail.com> >>>>>>> An: "Log4J Users List" <log4j-user@logging.apache.org> >>>>>>> Betreff: Re: RollingRandomAccessFile and emtpy log file >>>>>>> I would say immediateFlush but that doesn't explain why you're not >>>>>>> seeing the update until after logging 600 KB when the buffer is only >>>>>>> 256 KB... >>>>>>> >>>>>>> Have you tried setting system property >>>>>>> -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector >>>>>>> to switch on async loggers? This will ensure the buffer is always >>>>>>> flushed to disk, but it uses smart batching to achieve this in an >>>>>>> efficient manner (and it happens on the background thread, so no impact >>>>>>> on your application). >>>>>>> >>>>>>> Sent from my iPhone >>>>>>> >>>>>>>> On 2016/02/03, at 17:47, Veit Guna <veit.g...@gmx.de> wrote: >>>>>>>> >>>>>>>> Hi. >>>>>>>> >>>>>>>> I'm using log4j 2.5 with the RollingRandomAccessFile. When the >>>>>>>> application starts up and performs logging, the logfile >>>>>>>> gets created, but nothing is written to it. Only after I stop the >>>>>>>> application the content appears. I also doublechecked the 256KB >>>>>>>> buffer. But logging 600KB doesn't seem to trigger a write to the file. >>>>>>>> Console appender is working fine. >>>>>>>> >>>>>>>> Any idea what I'm missing? >>>>>>>> >>>>>>>> Here's my configuration: >>>>>>>> >>>>>>>> --cut here-- >>>>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>>>> <Configuration> >>>>>>>> >>>>>>>> <Properties> >>>>>>>> <Property >>>>>>>> name="logsPath">${sys:app.logs:-${env:APP_LOGS:-logs}}</Property> >>>>>>>> </Properties> >>>>>>>> >>>>>>>> <Appenders> >>>>>>>> <RollingRandomAccessFile name="rollingFileAppender" >>>>>>>> fileName="${logsPath}/app.log" >>>>>>>> filePattern="${logsPath}/app-%d{yyyy-MM-dd}-%i.log" >>>>>>>> immediateFlush="false"> >>>>>>>> <PatternLayout> >>>>>>>> <pattern>%d %-5p [%mdc{RQID}] [%c{1}] - %m%n</pattern> >>>>>>>> </PatternLayout> >>>>>>>> <Policies> >>>>>>>> <SizeBasedTriggeringPolicy size="10 MB" /> >>>>>>>> </Policies> >>>>>>>> <DefaultRolloverStrategy max="5" /> >>>>>>>> </RollingRandomAccessFile> >>>>>>>> <Console name="consoleAppender" target="SYSTEM_OUT"> >>>>>>>> <PatternLayout pattern="%d{HH:mm:ss,SSS} %-5p [%mdc{RQID}] [%c{1}] - >>>>>>>> %m%n" /> >>>>>>>> </Console> >>>>>>>> </Appenders> >>>>>>>> >>>>>>>> <Loggers> >>>>>>>> <Logger name="com.acme.app" level="info" /> >>>>>>>> >>>>>>>> <!-- spring --> >>>>>>>> <Logger name="org.springframework.security" level="info" /> >>>>>>>> <Logger name="org.springframework.transaction" level="info" /> >>>>>>>> <Logger name="org.springframework.orm.jpa" level="info" /> >>>>>>>> >>>>>>>> <!-- log SQL statements --> >>>>>>>> <Logger name="org.hibernate.SQL" level="error" /> >>>>>>>> <!-- log bind parameters --> >>>>>>>> <Logger name="org.hibernate.type" level="error" /> >>>>>>>> >>>>>>>> <Root level="info"> >>>>>>>> <AppenderRef ref="consoleAppender" /> >>>>>>>> <AppenderRef ref="rollingFileAppender" /> >>>>>>>> </Root> >>>>>>>> </Loggers> >>>>>>>> >>>>>>>> </Configuration> >>>>>>>> --cut here-- >>>>>>>> >>>>>>>> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >> For additional commands, e-mail: log4j-user-h...@logging.apache.org > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org