Ulrich,
> I thought logback would know the file it uses - why not supply the name?
There could be no file (console) or a hundred files, so it's not possible to
generalise.
Try something like this:
<configuration>
<appender name="ROLLING"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="ROLLING" />
</root>
</configuration>
This example is directly from http://logback.qos.ch/manual/appenders.html
But instead SizeAndTimeBasedFNATP, you should subclass SizeAndTimeBasedFNATP
and override the getActiveFileName() method. Then capture the filename, and put
it into somewhere your app can see.
There might be other ways, but I think this approach would work.
David
On 31 Jul 2013, at 13:41, Ulrich <[email protected]> wrote:
> Thank you. I don't want to set the filename or maintain the appender from my
> program. This is up to the operators running the application. And I don't
> want to add limitations beyond those given by logback itself. I thought
> logback would know the file it uses - why not supply the name?
> I could also (and I do it already) set the logfile by the operationg system
> and provide the name as an argument. In this case the I must request that
> only the console-appender can be used. But I don't like this approach.
>
> Ulrich
>
>
> Am 31.07.2013 12:21, schrieb David Roussel:
>> I've made my app know the logger file name so that I can put a link to it in
>> an email.
>>
>> Buy the way I did it was to make the app choose the filename and set a
>> system property. Then in logback.xml refer to the system property.
>>
>> If that approach does not work, because you are using a dynamic log file
>> name, then I suggest you try subclassing the rolling appender and getting
>> the new filename each time one is generated, and then putting that value
>> into a static singleton that is visible to your app.
>>
>> David
>>
>> On 31 Jul 2013, at 11:12, Ulrich <[email protected]> wrote:
>>
>>>
>>> Within my application I would like to know the filename used by it's
>>> logger. I've asked this question before but didn't get an answer. So I will
>>> give it another try.
>>> I've browsed through the Javadoc of the classes and interfaces where I
>>> thought by their name they should be able to provide this piece of
>>> information (LoggerContext and Appender to name two of them), but wasn't
>>> lucky.
>>>
>>> Can anyone help here?
>>> Ulrich
>>>
>>>
>>>
>>> _______________________________________________
>>> Logback-user mailing list
>>> [email protected]
>>> http://mailman.qos.ch/mailman/listinfo/logback-user
>> _______________________________________________
>> Logback-user mailing list
>> [email protected]
>> http://mailman.qos.ch/mailman/listinfo/logback-user
>>
> _______________________________________________
> Logback-user mailing list
> [email protected]
> http://mailman.qos.ch/mailman/listinfo/logback-user
_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user