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