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]

Reply via email to