logback的日志配置文件

时间:2022-01-05 04:38:48

日志配置文件logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration scan="true">
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="RollingFile"
class
="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>

<!-- 测试部署时使用如下配置 -->
<!-- 可让每天产生一个日志文件,最多 30 个,更早的删除 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${app.home}/logs/log-%d{yyyy-MM-dd}.log
</fileNamePattern>
<maxHistory>10</maxHistory>
</rollingPolicy>

<!--
RollingFileAppender 一般情况下需要配置两个参数:
RollingPolicy,负责滚动。TriggeringPolicy,决定是否以及何时进行滚动
TimeBasedRollingPolicy比较特殊,它同时继承了RollingPolicy和TriggerPolicy。

-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger -
%msg%n
</pattern>
</encoder>

<!-- 正式部署时使用此配置 -->
<!--
<file>${app.home}/logs/log.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${app.home}/logs/log.%i.log.zip
</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>7</maxIndex>
</rollingPolicy>

<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger -
%msg%n
</pattern>
</encoder>

<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
-->
</appender>
<logger name="com.log.agent" level="DEBUG" />
<logger name="com.log" level="INFO" />
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="RollingFile" />
</root>
</configuration>

部署运行后发现,在Linux下面 tomcat的日志文件catalina.out增长速度很快,造成愈来愈大;

修改tomcat/conf/logging.peoperties 将

1catalina.org.apache.juli.FileHandler.level = FINE 
改为
1catalina.org.apache.juli.FileHandler.level = WARNING


# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License
, Version 2.0
# (the
"License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-
2.0
#
# Unless required by applicable law or agreed to in writing
, software
# distributed under the License is distributed on an
"AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND
, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

handlers
= 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers
= 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.FileHandler.level
= WARNING
1catalina.org.apache.juli.FileHandler.directory
= ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix
= catalina.

2localhost.org.apache.juli.FileHandler.level
= FINE
2localhost.org.apache.juli.FileHandler.directory
= ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix
= localhost.

3manager.org.apache.juli.FileHandler.level
= FINE
3manager.org.apache.juli.FileHandler.directory
= ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix
= manager.

4host-manager.org.apache.juli.FileHandler.level
= FINE
4host-manager.org.apache.juli.FileHandler.directory
= ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix
= host-manager.

java.util.logging.ConsoleHandler.level
= FINE
java.util.logging.ConsoleHandler.formatter
= java.util.logging.SimpleFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.
[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.
[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.
[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.
[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.
[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.
[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler

# For example
, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level
= FINE

# To see debug messages in TldLocationsCache
, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level
= FINE

因为:

Tomcat 日志分为下面5类:
catalina 、 localhost 、 manager 、 admin 、 host-manager
每类日志的级别分为如下 7 种:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)