[logback-user] Any way to tersely override portions of an included logback file?
logback users list
logback-user at qos.ch
Fri Jun 9 19:31:44 CEST 2023
Sorry, I forgot the other question you asked. We're using logback 1.2.9.
On Fri, Jun 9, 2023 at 10:28 AM David Karr <davidmichaelkarr at gmail.com>
wrote:
> I actually think I've gotten something that will work, although I have
> another question related to this that I think I'll post in a separate
> question.
>
> In our "baselogback.xml", I will change this:
>
> <stackTrace>
> <fieldName>exTrace</fieldName>
> <throwableConverter
> class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
> <maxDepthPerThrowable>10</maxDepthPerThrowable>
> <rootCauseFirst>false</rootCauseFirst>
> <maxLength>10240</maxLength>
> </throwableConverter>
> </stackTrace>
>
> To:
>
> <stackTrace>
> <fieldName>exTrace</fieldName>
> <throwableConverter
> class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
>
> <maxDepthPerThrowable>${maxDepthPerThrowable:-10}</maxDepthPerThrowable>
>
> <rootCauseFirst>${rootCauseFirst:-false}</rootCauseFirst>
> <maxLength>${maxLength:-10240}</maxLength>
> </throwableConverter>
> </stackTrace>
>
> And in each service's logback.xml, adding this line just before the
> include of "baselogback.xml":
>
> <property file="....logback-custom.properties"/>
>
> Where the contents of this file might be:
>
> maxDepthPerThrowable = 200
> rootCauseFirst = false
> maxLength = 10240
>
> The ":-" markers in "baselogback.xml" set the defaults, so if a service
> doesn't make any change, they will still get the defaults.
>
> On Fri, Jun 9, 2023 at 10:18 AM logback users list via logback-user <
> logback-user at qos.ch> wrote:
>
>>
>> Can you provide a super simplified example of what you wish to
>> accomplish? In your example please use ConsoleAppender.
>>
>> By the way, which version of logback are you using?
>>
>> Here is a start:
>>
>> <configuration>
>>
>> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
>> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
>> <pattern>%-4relative [%thread] %-5level %logger{35} -%kvp- %msg
>> %n</pattern>
>> </encoder>
>> </appender>
>>
>> <root level="DEBUG">
>> <appender-ref ref="STDOUT" />
>> </root>
>> </configuration>
>>
>>
>> On 6/9/2023 7:09 PM, logback users list via logback-user wrote:
>> > Because, for instance, I can add a "property" element to the
>> > "baselogback.xml" to define the property and its value, but then it
>> > appears that any attempt to override that value from the "logback.xml"
>> > in the service is ignored.
>> >
>> > On Fri, Jun 9, 2023 at 8:13 AM logback users list via logback-user
>> > <logback-user at qos.ch <mailto:logback-user at qos.ch>> wrote:
>> >
>> > I've managed to verify a setup where my "stacktrace" element in the
>> > "baselogback.xml" references properties, and my "logback.xml" in a
>> > service first specifies a properties file before including
>> > "baselogback.xml". That lets me control the properties in that
>> > element in the "baselogback.xml" from properties in the service.
>> >
>> > Now I'm looking at the situation where if the "baselogback.xml" is
>> > changed in this way, but the service's "logback.xml" is NOT changed,
>> > then those properties don't have values, which doesn't cause a
>> > failure, it just appears to set them to their default values. Is
>> > there some way, in the "baselogback.xml", I can set the default
>> > values for those properties, so that if the service's logback.xml
>> > doesn't set them, they will use the defaults instead?
>> >
>> > On Thu, Jun 8, 2023 at 11:14 AM logback users list via logback-user
>> > <logback-user at qos.ch <mailto:logback-user at qos.ch>> wrote:
>> >
>> > Hello David,
>> >
>> > Variables defined in logback.xml, or as system properties or as
>> > environment variables are intended for substitution
>> functionality
>> > elsewhere in the logback config file. I suggest that you try
>> simpler
>> > examples to convince you of this.
>> >
>> > It may be possible that the stackTrace element of
>> > LoggingEventCompositeJsonEncoder does not perform variable look
>> up.
>> > However, this is an omission on the part of that component.
>> >
>> > HTH,
>> >
>> > --
>> > Ceki Gülcü
>> >
>> > Sponsoring SLF4J/logback/reload4j at
>> > https://github.com/sponsors/qos-ch
>> > <https://github.com/sponsors/qos-ch>
>> >
>> > On 6/8/2023 7:49 PM, logback users list via logback-user wrote:
>> > > I posted this question to
>> > >
>> > StackOverflow:
>> https://stackoverflow.com/questions/76427762/can-i-override-portions-of-an-appender-defined-in-a-logback-include-file
>> <
>> https://stackoverflow.com/questions/76427762/can-i-override-portions-of-an-appender-defined-in-a-logback-include-file>
>> <
>> https://stackoverflow.com/questions/76427762/can-i-override-portions-of-an-appender-defined-in-a-logback-include-file
>> <
>> https://stackoverflow.com/questions/76427762/can-i-override-portions-of-an-appender-defined-in-a-logback-include-file>>
>> .
>> > >
>> > > And I had posted a similar question several months ago. I
>> > didn't get a
>> > > response to the original query, and I have a feeling I won't
>> > get one on
>> > > the new query.
>> > >
>> > > Basically, I have a few hundred services that have a
>> > "logback.xml" file
>> > > that includes a "baselogback.xml" file that is defined in a
>> common
>> > > place. That "baselogback.xml" defines an appender and an
>> > encoder in
>> > > that appender, and inside that encoder, it defines a
>> "stackTrace"
>> > > element that constrains the size of the stacktrace in logs.
>> > >
>> > > I'm trying to determine reasonable options for overriding
>> > those settings
>> > > in the "logback.xml" of the service itself. I'd prefer options
>> > that
>> > > don't require me to simply copy the entire appender definition
>> > from the
>> > > base and paste it into the service's logback.xml and then
>> > modify it. At
>> > > this point, there are only specific settings I want to
>> override.
>> > >
>> > > Another not ideal option is providing multiple
>> > "baselogback.xml" files
>> > > in the same common location (with slightly different names,
>> > obviously)
>> > > which represent commonly requested variations, like
>> > > "baselogback.fullstacktrace.xml", and have the service's
>> > logback.xml
>> > > include that one instead. That still requires copying code
>> > and having
>> > > to maintain two copies, but at least it's still in a common
>> > place, and
>> > > not littered in all the services.
>> > >
>> > > Any other reasonable ideas that can make this flexible without
>> > a lot of
>> > > duplications?
>> > >
>> > ______________________________
>>
>> --
>> Support Team
>> QOS.CH Sarl (Switzerland)
>> _______________________________________________
>> logback-user mailing list
>> logback-user at qos.ch
>> https://mailman.qos.ch/cgi-bin/mailman/listinfo/logback-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20230609/72d336fe/attachment-0001.htm>
More information about the logback-user
mailing list