Uploaded image for project: 'logback'
  1. logback
  2. LOGBACK-1546

logback-json-appender.xml: how to customize message pattern

    XMLWordPrintable

Details

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • None
    • None

    Description

      Hi,
      I have an App Engine application (java11) with Spring Boot.

       I configured the logback in order to write console_json logs on Cloud Logging.

      <configuration>
         <include resource="org/springframework/boot/logging/logback/defaults.xml" />
         <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
      
         <springProfile name="development | stage | production">
            <include resource="org/springframework/cloud/gcp/logging/logback-json-appender.xml" />
            <root level="INFO">
               <appender-ref ref="CONSOLE_JSON" />
            </root>
         </springProfile>
         <springProfile name="localhost">
            <root level="INFO">
               <appender-ref ref="CONSOLE" />
            </root>
         </springProfile>
      </configuration>
      

       I'm trying to understand how (and if possible...) to configure the message pattern, I'd like to add the class and the line number which generated that specific log.

      {{}}

      This is an example of a Java8 App Engine standard application (the first generation of App Engine where the log were directly integrated by the infrastructure):

      And this is an example of the log produced by my application with the given configuration:

       

      The log creation itself it's working as expected, but I'm not getting the class/line number. Of course I don't expect to obtain the same behaviour where the class reference is clickable, which integrates the sources and all of that.
      In my case I'm simply trying to add those 2 pieces of information (as simple text) aside with the actual log message.

      Also, if you notice from the first screenshot, in addition to class simple name and line number at the end, there is also at the beginning the fully qualified name of the class and the method name.

      Is it something that is achievable at all? I tried playing with the <pattern> node of the xml but no luck, maybe I need to create a customLayout class or something, can you help me?

      That data would be very helpful to me as I can directly open the sources pointing to the specific line which generated the log and start from there for debugging.

      I think that it's something related to JsonLayout and the possibility to customize the message in order to add the caller information.

      I already reached the spring-cloud-gcp team, where they suggested me to ask here

      Thanks

      Attachments

        Activity

          People

            logback-dev Logback dev list
            nicola.spreafico Nicola Spreafico
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: