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 <[email protected]> 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 <[email protected]> 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" <[email protected]> >>>> An: "Log4J Users List" <[email protected]> >>>> 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 <[email protected]> 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" <[email protected]> >>>>> An: [email protected] >>>>> 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" <[email protected]> >>>>> An: "Log4J Users List" <[email protected]> >>>>> 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 <[email protected]> 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: [email protected] >>>>>> For additional commands, e-mail: [email protected] >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
