4

I am developing a spring boot service (2.1.7 spring boot version) where I am using log4j2 to establish the logs and their pattern:

    <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" name="MyService">
    <Properties>
        <Property name="project.component">${bundle:bootstrap:project.component}</Property>
        <Property name="project.version">${bundle:bootstrap:project.version}</Property>
    </Properties>
    <Appenders>
        <Console name="main" target="SYSTEM_OUT">
            <PatternLayout
              pattern="%d{yyyy-MM-dd HH:mm:ss,SSSZ} ${project.component} ${project.version} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="root" level="INFO">
            <AppenderRef ref="main" level="INFO"/>
        </Logger>
    </Loggers>
</Configuration>

I am not using log4j2.properties. My problem is that I am only able to change the log level by log4j2.xml, I have tried with several spring boot properties in my application.properties as logging.level.root or through actuator endpoints but they did not work. When I am in a production environment and I need to change the logs level I have not a way to do it.

Any suggestion?

Maria Montenegro
  • 380
  • 1
  • 5
  • 16

1 Answers1

0

I am able to change the log level using a similar configuration, which even let's you configure a pattern for the log:

# Set everything to be logged to the console
log4j.rootCategory=TRACE, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

Per-class log levels can also be set, in example:

# Settings to quiet third party logs that are too verbose
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INF
log4j.logger.org.apache.spark.sql.execution.streaming.FileStreamSource=TRACE
versvs
  • 643
  • 2
  • 12
  • 30