logback.xml 配置总结

项目篇 | 图书管理系统 | 管理员模块 | 概述 图书管理系统管理员模块概述 阅读详情

以下是我们在日常开发中使用的logback.xml文件配置,整理出来分享给大家。

输出日志到控制台

以下配置将使所有的项目日志输出到控制台:

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

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <logger name="com.mkyong.web" level="debug"
        additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>

    <root level="error">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

输出日志到文件

以下配置会将日志输出到c:/logs/debug.log文件里,此外,日志文件每天或大于10M时会被存档:

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

    <property name="DEV_HOME" value="c:/logs" />

    <appender name="FILE-AUDIT"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DEV_HOME}/debug.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %msg%n
            </Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
                        </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

    </appender>

    <logger name="com.mkyong.web" level="debug"
        additivity="false">
        <appender-ref ref="FILE-AUDIT" />
    </logger>

    <root level="error">
        <appender-ref ref="FILE-AUDIT" />
    </root>

</configuration>

输出日志到控制台和文件

以下示例会将日志信息输出到控制台和文件:

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

    <property name="DEV_HOME" value="c:/logs" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <appender name="FILE-AUDIT"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DEV_HOME}/debug.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %msg%n
            </Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
                        </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

    </appender>

    <appender name="FILE-ERROR"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DEV_HOME}/error.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %msg%n
            </Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${DEV_HOME}/archived/error.%d{yyyy-MM-dd}.%i.log
                        </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

    </appender>

    <!-- Send logs to both console and file audit -->
    <logger name="com.mkyong.web" level="debug"
        additivity="false">
        <appender-ref ref="FILE-AUDIT" />
        <appender-ref ref="STDOUT" />
    </logger>

    <root level="error">
        <appender-ref ref="FILE-ERROR" />
    </root>

</configuration>

参考资料:http://logback.qos.ch/manual/appenders.html

SiftingAppender示例

以下配置会将日志输出到分散的文件里,文件名称在运行时通过MDC方式生成:

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

    <property name="DEV_HOME" value="c:/logs" />

    <appender name="FILE-THREAD" class="ch.qos.logback.classic.sift.SiftingAppender">

          <discriminator>
        <key>logFileName</key>
        <defaultValue>head0</defaultValue>
      </discriminator>

      <sift>

        <appender name="FILE-${logFileName}"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${DEV_HOME}/${logFileName}.log</file>

            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>
                    %d{yyyy-MM-dd HH:mm:ss} [%thread] %level %logger{35} - %msg%n
                </Pattern>
            </encoder>

            <rollingPolicy
                class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <FileNamePattern>${DEV_HOME}/${logFileName}.%i.log.zip
                </FileNamePattern>
                <MinIndex>1</MinIndex>
                <MaxIndex>10</MaxIndex>
            </rollingPolicy>

            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <MaxFileSize>10MB</MaxFileSize>
            </triggeringPolicy>

        </appender>

      </sift>
    </appender>

    <logger name="com.mkyong.web" level="debug"
        additivity="false">
        <appender-ref ref="FILE-THREAD" />
    </logger>

    <root level="error">
        <appender-ref ref="FILE-THREAD" />
    </root>

</configuration>
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;

//...
public void run() {

    MDC.put('logFileName', "head1");

    logger.debug("hello");

    MDC.remove('logFileName');

}

参考资料:Logback SiftingAppender 示例

编程设置文件名称

可以通过System.setProperty方法设置log.name属性,来编程设置文件名称,代码如下:

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

    <property name="USER_HOME" value="/home/mkyong/ant/logs" />

    <appender name="FILE-ENGINE-ERROR" class="ch.qos.logback.core.FileAppender">
        <file>${USER_HOME}/${log.name}.error</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE-ENGINE" class="ch.qos.logback.core.FileAppender">
        <file>${USER_HOME}/${log.name}.log</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.mkyong.core" level="debug" additivity="false">
        <appender-ref ref="FILE-ENGINE" />
    </logger>

    <root level="error">
        <appender-ref ref="FILE-ENGINE-ERROR" />
    </root>

</configuration>

TestRunApp.java:

package com.mkyong.core;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestRunApp {

    //No static, else log.name.IS_UNDEFINED.log
    private final Logger logger = LoggerFactory.getLogger(TestRunApp.class);

    public static void main(String[] args) {

        //Set this before the logger start.
        System.setProperty("log.name", "abcdefg");

        TestRunApp obj = new TestRunApp();
        obj.start();

    }

    private void start() {

        logger.debug("------ Starting Ant------");
        //...
    }
}

结果如下:

Debug log file path
/home/mkyong/ant/logs/abcdefg.log

Error log file path
/home/mkyong/ant/logs/abcdefg.error

参考链接:Logback – 以编程方式设置文件名称

结语

Mkyong.com是一个不错的网站,我关注它几年了,作者是一个开发者,该网站主要面向Java开发者,所有示例简单易懂,并且很容易在开发环境测试。

编译自:logback.xml Example

基于STM32、HAL库的IP2736U_EF快充协议芯片简介及驱动程序设计 @param connected: 连接状态指针 (1=已连接, 0=未连接)= 0x2736) // 检查厂商ID。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。 阅读详情

相关推荐

电源新手别怕!手把手教你搞定Buck电路的环路补偿(附Type II/III补偿器参数计算)

本文为电源设计新手详细解析Buck电路环路补偿技术,重点介绍Type II和Type III补偿器的参数计算与设计方法。通过实例演示和实用技巧,帮助工程师快速掌握环路补偿原理,解决电源振荡、响应慢等问题,提升电路稳定性与性能。

weixin_30607029的博客 617

Logback配置详解——appender

logback 常用配置详解(二)<appender> <appender>标签: <appender>是<configuration>的子节点,是负责写日志的组件。 <appender>有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。 1.Console...

微信公众号:一颗向上的草莓 2638

基于STM32F103标准库与DMA的实时音频FFT频谱显示系统设计

本文详细介绍了基于STM32F103芯片与DMA技术实现实时音频FFT频谱显示系统的设计方法。通过标准库驱动和FFT算法处理音频信号,结合OLED显示屏实时绘制音乐频谱,涵盖硬件选型、核心原理、开发环境搭建及性能优化等关键步骤,为数字信号处理应用提供实用参考。

yellow的专栏 775

logback.xml配置详解

logback.xml 是 Logback 日志框架的配置文件,它允许你定义日志输出的方式、格式、目标以及日志级别等。

境里婆娑 1万+

基于立创EDA的8口全千兆POE交换机设计详解:RTL8370N芯片与90W大功率供电方案

本文详细解析了基于立创EDA设计的8口全千兆POE交换机方案,核心采用RTL8370N交换芯片与支持90W大功率供电的IEEE 802.3bt标准PD芯片。文章深入探讨了PSE/PD供电管理、电源架构设计、电路细节及关键散热方案,为DIY或学习POE交换机硬件设计提供了完整的开源实践指南。

weixin_29050829的博客 1万+

LSM6DSOW陀螺仪轮询驱动:从I2C/SPI配置到数据读取全解析

惯性测量单元(IMU)是现代嵌入式系统中实现姿态感知与运动跟踪的核心传感器,其通过加速度计和陀螺仪测量线性加速度与角速度。在嵌入式开发中,轮询(Polling)作为一种基础且可靠的通信方式,通过主循环主动查询传感器状态,简化了初始调试与验证流程。对于I2C/SPI接口的数字传感器,掌握寄存器配置、数据就绪标志检查及原始数据转换是通用的驱动方法,能够快速验证传感器工作状态并理解数据流。LSM6DSOW作为一款高性能6轴IMU,支持可配置的量程与输出数据速率,适用于无人机飞控、手持云台等高动态场景。本文以LSM

weixin_28728265的博客 555

logback的使用和logback.xml详解

logback.xml配置语法详解

weixin_43924444的博客 3250

四足机器人——机械结构

目录 一、四足机器人腿型: 1、并联腿 2、串联腿 3、 腿的布局(关节配置) 二、四足机器人足端设计: 三、四足机器人膝关节驱动: 1、皮带轮驱动: 2、四连杆或者推杆驱动 四、四足机器人机械整体结构设计细节 一、四足机器人腿型: 1、并联腿 优点:受力角度来说,并联腿比串联腿好,并联腿较为灵活。 2、串联腿 优点:运动范围大 3、 腿的布局(关节配置) 为了使机器人具有较好的稳定性,一般会采用比较低的重心。这就导致了机器人腿的髋关节位置需要位于机器人身体的两侧..

m0_58585940的博客 3万+

LOGBACK 配置: 用 XML

现如今,java 开发中 都用logback来配置日志了。之前看到一篇好文章,翻译分享给大家。 原文前言当底层的日志记录框架成为一个技术瓶颈时,将无法很好记录日志。日志记录框架需要是快速的,有一个小的内存占用空间,并且可以很容易地配置。Logback是日志框架具有这些优点。如果你是新的Logback,我建议去通过我的介绍后对logback:logback简介:一个企业级日志框架。生成Logger我

Elementary Conference 1万+

Java电商秒杀系统性能优化(一)——电商秒杀系统框架回顾

电商秒杀系统框架回顾项目简介外部依赖框架回顾项目要点项目中存在的问题小结 课程是免费的,课程地址如下:SpringBoot搭建电商秒杀项目,课程真的很棒,作者的思路很清晰,建议各位读者可以跟着视频练习一下这个项目; 项目简介 通过SpringBoot快速搭建的前后端分离的电商基础秒杀项目。项目通过应用领域驱动型的分层模型设计方式去完成:用户otp注册、登陆、查看、商品列表、进入商品详情以及倒计时秒...

ghw15221836342的博客 3718

华为主题包HWT从入门到排障:下载、导入、修改与兼容性指南

手机主题是很多用户个性化设备的起点,华为手机的主题文件以HWT格式封装,本质上是一种结构特殊的ZIP压缩包,内部包含壁纸、图标、字体和XML配置。了解HWT的目录结构与系统版本兼容性,能帮助用户避开导入失败、秒回默认等常见问题。本文从HWT的基本原理讲起,梳理了安全下载渠道、三种导入方式、应用失败的系统性排查思路,并介绍了解包修改壁纸与字体的方法。无论是普通用户还是进阶玩家,掌握这些技术细节都能更从容地在EMUI与HarmonyOS环境下管理自己的主题资源。

weixin_31155097的博客 350

浅谈如何配置logback.xml

Logback 提供了更高的性能、更小的内存占用以及更灵活的配置选项。通过配置 logback.xml 文件,我们可以灵活地控制日志的输出格式、日志级别、日志的输出目标等。本文将详细介绍如何配置 logback.xml 文件

u011203602的专栏 1936

《UDS/OBD诊断需求编辑工具》总目录

目录 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 2.1 编辑ODX-D诊断描述文件 2.2 编辑ODX-F刷写软件 该专栏主要负责介绍CANdela Studio和ODX Studio编辑CDD/ODX/PDX诊断描述文件。 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 【ODX介绍 】-1- 标准梳理 【ODX介绍】 -2-如何手..

「汽车电子助手」的博客 1万+

logback配置文件---logback.xml详解

一、添加maven依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency&gt

AllenLuoYi的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SpringBoot项目中日志控制,配置logback(logback.xml的配置及介绍)

SpringBoot项目中对日志的处理手动控制,这是我整理的logback.xml文件内容,直接复制copy使用即可,里面有详细的注释使用,如果是单模块,就在java同层级的resoures目录下(存放application.yml那个目录下)新建一个logback.xml,重启服务即可生效。SpringBoot项目配置logback理论上需要添加logback-classic依赖jar包: 但是因为SpringBoot项目默认就是使用的就是logback日志系统

虽千万人,吾往矣 5126

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【Java】logback.xml文件配置

logback日志的使用。logback.xml的配置文件讲解

Syals的博客 5640

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

logback.xml配置文件详解

logback.xml配置文件详解该文章主要内容1、maven依赖2 常用节点结构图2.1 根节点`configuration`2.2 子节点`contextName`2.3 子节点`property`2.4 子节点`appender`2.5 子节点`logger`2.6 子节点`root`3 配置使用案例 该文章主要内容 1、maven依赖 <dependency> <groupId>ch.qos.logback</groupId> <artifactId&g

Master_Shifu_的博客 4215

logback.xml 配置详解

配置查询1: <?xml version="1.0"encoding="utf-8"?> <!-- 从高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL --> <!-- 日志输出规则 根据当前ROOT 级别,日志输出时,级别高于root默认的级别时 会输出 --> <!-- 以下 每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过...

fygkchina的专栏 648

日志配置logback.xml详解

一、日志门面和日志框架 1.1 概念 常用日志框架:log4j、logback 常用日志门面:Slf4j 目前Spring-boot主流使用: slf4j + logback 日志框架出现时间顺序: log4j -->JUL–>JCL–> slf4j --> logback --> log4j2 1.2 日志门面和日志框架依赖 目前Spring-boot主流使用: slf4j + logback。所以下面说的是 slf4j 和 logback依赖引入。 日志门面:依赖集成

TAaron666的博客 2744

系统Logback.xml配置

<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 --> <property name="LOG_HOME" value="/home/yyxt" /> <!-- 控制台输出 ...

qq_43364809的博客 271

logback.xml常用配置详解

Logback最常用就是在/src/main/resource/文件夹下的logback.xml文件中。,从而对日志进行配置输出。 logback主要包含三个组成部分:Loggers(日志记录器)、Appenders(输出目的在)、Layouts(日志输出格式) 下面就是一个常用的日志配置模版,下面就从跟节点来解析每个节点 <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false" scan="true.

spring_root的博客 2万+

日志logback配置: 解决 logback.xml 配置不起作用的问题

解决 logback.xml 配置不起作用的问题 Logback 是一个 Java 领域的日志框架。 今天在学习使用 logback 日志框架时,配置 logback-test.xml 一直不起作用。特此记录一下。 使用 logback 输出日志: 直接上代码,App.java 代码如下: public class App { private static final L...

我的开发博客(公众号:Web后端技术) 4万+

logback.xml动态配置程序路径

目录 1.普通java程序 2.spring boot应用 1.普通java程序 如下配置的logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="LOGS_HOME" value="/opt/program/app/logback-de...

catcher92的博客 8310

Springboot logback.xml配置详解

主要对logback.xml 常用配置的作用介绍, 通过logback 的相关源码对additivity参数有了更深的认识. additivity 默认值为true, 如果不希望在某些场景下打印重复的日志, 可以设置为false, additivity 配置不受level配置的影响.代码没有关于日志级别的控制. 所以以后如果只希望打印日志到子节点的appeder, 父节点的appender忽略, 就设置additivity = false, 默认值为true, 这样日志就不会重复了.

恒二哥的博客 1520

3.解析logback.xml配置文件入口

前面介绍了slf4j相关的知识点,提到了实现模块是通过进行自定义日志框架的,本节就来介绍logback的默认的日志上下文是loggerContext使用spi获取到进行初始化,如果存在(默认不存在),并且执行后的返回值为则解析完成使用默认的进行初始化,其中比较核心,是logback用来解析logback.xml的配置类,解析成功后会返回,直接终端后面的配置类解析;默认的三个配置类如下可以通过环境参数。

joeyhhhhh的博客 1643
上一篇: logback.xml 配置总结
下一篇: 深入分析 Java 中的中文编码问题
Viking_bird
博客等级 码龄11年 92粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值