Spring Boot控制台日志记录配置示例

了解如何在Spring Boot应用程序中使用和配置日志记录以控制台。还学习配置和使用logbacklog4j2中可用的控制台附加程序

1.默认控制台日志记录

Spring Boot内部使用apache的通用日志记录,并使用logback作为默认日志记录提供程序。如果我们不进行任何特定于日志记录的配置,那么仍然会看到大量日志输出到控制台,足以满足POC(概念验证)的目的。

我们可以在这些打包文件中找到所有默认的控制台日志记录配置

<conversionRule conversionWord="clr" 
	converterClass="org.springframework.boot.logging.logback.ColorConverter" />

<conversionRule conversionWord="wex" 
	converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />

<conversionRule conversionWord="wEx" 
	converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />

<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}})
{faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39})
{cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
	<encoder>
		<pattern>${CONSOLE_LOG_PATTERN}</pattern>
	</encoder>
</appender>

<root level="INFO">
	<appender-ref ref="CONSOLE" />
</root>

2.使用properties / yaml自定义默认控制台日志

通常,在控制台日志中,我们需要两件事,即日志级别和输出模式

2.1。日志级别

要更改日志级别,我们可以将其更改为两个级别- 根记录器和/或特定记录器实例。

要更改根记录器的级别'logging.level.root=trace'(具有所需级别),请在属性文件中。另外,要控制各个记录器级别的记录,请使用logging.level.LOGGER_NAME=trace

logging.level.root=INFO

logging.level.org.springframework=ERROR
logging.level.org.hibernate=ERROR

2.2。记录输出模式

模式是根据属性控制的logging.pattern.console

logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %logger{36} - %msg%n

3.使用logback自定义控制台日志

如果我们已配置了通过logback进行日志记录–使用自己的logback.xml文件,则使用以下配置来控制控制台日志记录的各种选项。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 
	<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} - %logger{36} - %msg%n" />

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <logger name="com.how2codex.app" level="trace" additivity="false">
        <appender-ref ref="console" />
    </logger>
 
    <root level="info">
        <appender-ref ref="console"/>
    </root>

</configuration>

4.使用log4j2自定义控制台日志记录

要使用log4j2配置控制台日志记录,请在log4j2.xml文件中放置给定的定义。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">

    <Properties>
        <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property>
    </Properties>

    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="${LOG_PATTERN}" />
        </Console>
    </Appenders>

    <Loggers>
        <Root level="info">
            <AppenderRef ref="console" />
        </Root>
    </Loggers>
</Configuration>

5.禁用控制台日志记录

要禁用控制台中的日志记录,最干净的方法是创建自定义日志记录配置文件(logback.xmllog4j2.xml),并且不提供控制台附加程序的任何定义

如果不使用配置文件,则可以使用logging.pattern.console具有空值的属性来禁用控制台日志记录。这不是推荐的方法,仅对POC有用。

logging.pattern.console=

仅在配置文件中包括文件追加器,这将阻止任何日志输出到控制台。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

	<property name="LOG_LOCATION" value="c:/temp" />
	<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} - %logger{36} - %msg%n" />
 
    <appender name="file" class="ch.qos.logback.core.FileAppender">
        <file>${LOG_LOCATION}/mylog.log</file>
        <encoder>
             <pattern>${LOG_PATTERN}</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_LOCATION}/archived/mylog-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <logger name="com.how2codex.app" level="trace" additivity="false">
        <appender-ref ref="file" />
    </logger>
 
    <root level="info">
        <appender-ref ref="file"/>
    </root>

</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">

    <Properties>
        <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property>
    </Properties>

    <RollingFile name="file"
        fileName="${APP_LOG_ROOT}/SpringBoot2App/application.log"
        filePattern="${APP_LOG_ROOT}/SpringBoot2App/application-%d{yyyy-MM-dd}-%i.log">
        <PatternLayout pattern="${LOG_PATTERN}" />
        <Policies>
            <SizeBasedTriggeringPolicy size="19500KB" />
        </Policies>
        <DefaultRolloverStrategy max="1" />
    </RollingFile>

    <Loggers>
        <Root level="info">
            <AppenderRef ref="file" />
        </Root>
    </Loggers>
</Configuration>

请问您有关Spring Boot控制台附加程序示例的问题

学习愉快!

saigon has written 1440 articles

Leave a Reply