java 配置日志文件

news/2025/3/30 10:50:56/

一、Logback日志配置

1、引入 logback 依赖

在Maven项目的pom.xml文件中添加以下依赖:

<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.30</version>
</dependency>
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version>
</dependency>

2、创建logback.xml配置文件

在资源文件夹(如src/main/resources)下创建一个名为logback.xml的文件,并添加以下内容:

<configuration><!-- 控制台输出 --><appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"><encoder charset="utf-8"><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 文件输出 --><appender name="fileLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>DEBUG</level></filter><file>logs/application.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>logs/application.%d{yyyy-MM-dd}_%i.log</fileNamePattern><maxHistory>10</maxHistory><maxFileSize>10MB</maxFileSize><totalSizeCap>100MB</totalSizeCap></rollingPolicy><encoder charset="utf-8"><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 设置根日志级别和输出器 --><root level="info"><appender-ref ref="consoleLog" /><appender-ref ref="fileLog" /></root></configuration>

3、在代码中使用Logback进行日志记录

在Java类中添加如下代码来记录日志:

import org.slf4j.LoggerFactory;public class LogbackExample {private static final Logger logger = LoggerFactory.getLogger(LogbackExample.class);public static void main(String[] args) {logger.debug("This is a debug message");logger.info("This is an info message");logger.warn("This is a warning message");logger.error("This is an error message");}}

 二、配置日志级别

日志级别用于控制日志的输出范围,从最低到最高分别为:TRACE、DEBUG、INFO、WARN、ERROR、FATAL。配置日志级别时,可以根据项目的需求进行调整。例如,在开发环境中可以设置较低的日志级别(如DEBUG),以便捕获更多的调试信息,而在生产环境中则可以设置较高的日志级别(如ERROR),以减少日志的输出量。

1、Logback日志级别配置

logback.xml文件中设置日志级别:

<root level="DEBUG"><appender-ref ref="STDOUT" /><appender-ref ref="FILE" />
</root>

三、配置日志输出格式

日志输出格式是指日志信息的显示方式,通常包括时间戳、日志级别、类名、行号和日志消息等。通过配置日志输出格式,可以使日志信息更加清晰和易读。

1、Logback日志输出格式配置

logback.xml文件中设置日志输出格式:

<encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>

四、指定日志文件路径

指定日志文件路径是指设置日志文件的存储位置。通过配置日志文件路径,可以将日志信息保存到指定的文件中,便于后续的分析和排查。

1、Logback日志文件路径配置

logback.xml文件中设置日志文件路径:

<file>logs/application.log</file>

五、日志轮转配置

日志轮转是指当日志文件达到一定大小或时间限制时,自动生成新的日志文件,以避免单个日志文件过大。常见的日志轮转策略包括基于文件大小的轮转和基于时间的轮转。

1、Logback日志轮转配置

logback.xml文件中配置基于时间的轮转:

<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>logs/flink.%d{yyyy-MM-dd}_%i.log</fileNamePattern><maxHistory>10</maxHistory><maxFileSize>10MB</maxFileSize><totalSizeCap>100MB</totalSizeCap></rollingPolicy>

转载:java 如何配置日志文件 | PingCode智库 


http://www.ppmy.cn/news/1583500.html

相关文章

锐捷EWEB路由器 timeout.php任意文件上传漏洞(DVB-2025-9003)

免责声明 仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 一:产品介绍 锐捷EWEB路由器是锐…

ReentrantLock

ReentrantLock为可重入锁,底层是AQS实现的. ReentrantLock有两种模式,一种是公平锁,一种是非公平锁 公平锁下等待线程入队后会严格按照队列顺序执行 非公平锁模式下等待线程入队列后有可能会出现插队情况 公平锁 第一步:获取状态的state的值 如果state 0即代表锁没有被其…

easyExcel2.2.10中为0数据显示为空

在 EasyExcel 2.2.10 中&#xff0c;如果希望将数值为 0 的数据在 Excel 中显示为空&#xff08;即不显示 0&#xff09;&#xff0c;可以通过以下方法实现&#xff1a; 1. 使用 ExcelProperty 的 format 参数 通过设置单元格格式为 #&#xff08;# 会忽略 0&#xff09;&…

字节跳动春招研发部笔试题解

字节跳动春招研发部笔试题 1.万万没想到之聪明的编辑 我叫王大锤&#xff0c;是一家出版社的编辑。我负责校对投稿来的英文稿件&#xff0c;这份工作非常烦人&#xff0c;因为每天都要去修正无数的拼写错误。但是&#xff0c;优秀的人总能在平凡的工作中发现真理。我发现一个发…

力扣32.最长有效括号(栈)

32. 最长有效括号 - 力扣&#xff08;LeetCode&#xff09; 代码区&#xff1a; #include<stack> #include<string> /*最长有效*/ class Solution { public:int longestValidParentheses(string s) {stack<int> st;int ans0;int ns.length();st.push(-1);fo…

第十三章:优化内存管理_《C++性能优化指南》_notes

优化内存管理 一、内存管理基础概念二、自定义分配器三、智能指针优化重点知识代码示例&#xff1a;智能指针性能对比 四、性能优化关键点总结多选题设计题答案与详解多选题答案设计题示例答案&#xff08;第1题&#xff09; 一、内存管理基础概念 重点知识 动态内存分配开销…

go的参数传递都是值传递,但切片需要注意

根据之前学习python和java的经验&#xff0c;每次学习一门新语言时&#xff0c;一定要搞清楚方法的参数传递是值传递&#xff0c;引用传递还是指针传递。 主要原因就是需要知道&#xff0c;某种类型的数据传递给某个方法后&#xff0c;方法里面对它的修改是否会影响到这个数据本…

支付宝关键词排名优化策略:提升小程序曝光的关键

在支付宝平台&#xff0c;关键词排名对于小程序的曝光度和用户获取至关重要。精准的关键词策略可以帮助小程序在搜索结果中获得更高的排名&#xff0c;从而吸引更多的潜在用户。本文将详细解析支付宝关键词排名优化的核心策略和实施步骤&#xff0c;助力您的小程序在激烈的市场…