If you want both time and size then you need one %d pattern that reflects the 
interval for when you want rotation to occur - namely yyyy_MM_dd. Normally you 
would use %I in the pattern to increment a counter during the interval. But I 
suspect if you use ${date} in the file name of the pattern and the granularity 
is smaller than the time it will take to generate enough records to perform a 
rollover you should be ok.

Ralph

> On Apr 27, 2020, at 1:51 PM, Benjamin Asbach <contact-...@impl.it> wrote:
> 
> Hi Ralph,
> 
> thanks for taking some time.
> 
> Basically I want a log which rotates at midnight and is limited in file size. 
> So I'd expect that these files are generated:
> 
> /2020_04_27/msg-2020_04_27-12_17_00.log (application started)
> /2020_04_27/msg-2020_04_27-18_13_30.log (log file exceed 250MB)
> /2020_04_28/msg-2020_04_28-00_00_00.log (next day)
> 
> I guess the suggested pattern isn't the entire solution since with
> 
> * TimeBasedTriggeringPolicy) Is now invalid due the missing %d
> * CronTriggeringPolicy) Just creates one big log file 
> `msg-2020_04_27-00_00_00.log` ignoring the file limitations
> 
> Thanks
> Benjamin
> 
> 
> On 2020-04-27 20:28, Ralph Goers wrote:
>> The %d pattern only applies to time based rollovers. If you want the
>> time in a size based rollover pattern then use the date lookup
>> filePattern=/tmp/msg-$${date:yyyy_MM_dd}/nps-message-$${date:yyyy_MM_dd_HH_mm_ss}.log
>> Ralph
>>> On Apr 27, 2020, at 10:39 AM, Benjamin Asbach <contact-...@impl.it> wrote:
>>> I guess I've been glad to early.
>>> ```
>>> appender.msglog.type = RollingFile
>>> appender.msglog.name = localmsglog
>>> appender.msglog.filePattern = 
>>> /tmp/msg-%d{yyyy_MM_dd}/nps-message-%d{yyyy_MM_dd_HH_mm_ss}.log
>>> appender.msglog.layout.type = log4j1xmllayout
>>> appender.msglog.policies.type = Policies
>>> appender.msglog.policies.size.type = SizeBasedTriggeringPolicy
>>> appender.msglog.policies.size.size = 250MB
>>> ```
>>> Is rolling the file as expected.
>>> I now tried to configure a nightly roll.
>>> by adding  `appender.msglog.policies.cron.type = CronTriggeringPolicy`. I 
>>> also tried `appender.msglog.policies.time.type = 
>>> TimeBasedTriggeringPolicy`. Both results into a single log file 
>>> `msg-2020_04_27_00_00_00-0.log` and size based logging stops working.
>>> Any ideas? Maybe I misunderstand some basic concept?
>>> Thanks in advance
>>> Benjamin
>>> On 2020-04-27 17:47, Benjamin Asbach wrote:
>>>> I guess I found a solution:
>>>> ```
>>>> appender.msglog.type = RollingFile
>>>> appender.msglog.name = localmsglog
>>>> appender.msglog.filePattern =
>>>> /tmp/msg-%d{yyyy_MM_dd}/nps-message-%d{yyyy_MM_dd_HH_mm_ss}.log
>>>> appender.msglog.layout.type = log4j1xmllayout
>>>> appender.msglog.policies.type = Policies
>>>> appender.msglog.policies.size.type = SizeBasedTriggeringPolicy
>>>> appender.msglog.policies.size.size = 250MB
>>>> ```
>>>> Sorry for noise.
>>>> Benjamin
>>>> On 2020-04-27 16:24, Benjamin Asbach wrote:
>>>>> Hej!
>>>>> Currently I try to configure log4j2 to:
>>>>> * create a log in a folder with dates: e.h.
>>>>> 2020_04_27/messages.20200427_13_39_01.log
>>>>> * limit the log size to 250MB
>>>>> (* use a custom layout)
>>>>> (* rollover every day)
>>>>> But I'm already stuck with the first two bullets
>>>>> ```
>>>>> appender.msglog.type = RollingFile
>>>>> appender.msglog.name = localmsglog
>>>>> appender.msglog.filePattern =
>>>>> /tmp/msg-${date:yyyy_MM_dd}/nps-message-${date:yyyy_MM_dd_HH_mm_ss}.log
>>>>> appender.msglog.layout.type = log4j1xmllayout
>>>>> appender.msglog.policies.type = Policies
>>>>> appender.msglog.policies.size.type = SizeBasedTriggeringPolicy
>>>>> appender.msglog.policies.size.size = 250MB
>>>>> appender.msglog.strategy.type = DirectWriteRolloverStrategy
>>>>> ```
>>>>> Basically the log is created in the correct folder and with the
>>>>> correct name. But the file is not rolled after 250MB .
>>>>> I digged a little bit into the source and recognized that the
>>>>> `DirectWriteRolloverStrategy` does not get the pattern, but the
>>>>> current log file name, so it does not contain the `filePattern` at
>>>>> all.
>>>>> Now I'm unsure if this is a bug or a configuration issue.
>>>>> Thanks in advance
>>>>> Benjamin
>>>>> ---------------------------------------------------------------------
>>>>> 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

Reply via email to