当前位置: 首页 > news >正文

配置SLF4J日志输出到D盘logs目录和控制台

下面我将为您提供一个完整的配置方案,将日志同时输出到控制台的D盘logs目录下,并设置不同的日志级别。

1. 添加必要的依赖

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

<dependencies><!-- SLF4J API --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.9</version></dependency><!-- Logback实现 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.4.11</version></dependency><!-- Lombok(用于@Slf4j注解) --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version><scope>provided</scope></dependency>
</dependencies>

2. 创建Logback配置文件

src/main/resources目录下创建logback.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 定义变量 --><property name="LOG_DIR" value="D:/logs" /><property name="LOG_FILE" value="application" /><!-- 控制台输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder><!-- 设置控制台日志级别 --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter></appender><!-- 文件输出 - 所有级别 --><appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_DIR}/${LOG_FILE}.log</file><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder><!-- 设置文件滚动策略 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_DIR}/${LOG_FILE}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><maxFileSize>10MB</maxFileSize><maxHistory>30</maxHistory><totalSizeCap>1GB</totalSizeCap></rollingPolicy><!-- 设置文件日志级别 --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>DEBUG</level></filter></appender><!-- 文件输出 - 错误级别 --><appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_DIR}/${LOG_FILE}-error.log</file><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_DIR}/${LOG_FILE}-error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><maxFileSize>10MB</maxFileSize><maxHistory>30</maxHistory><totalSizeCap>1GB</totalSizeCap></rollingPolicy><!-- 只记录ERROR级别日志 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 根日志记录器 --><root level="DEBUG"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE_ALL" /><appender-ref ref="FILE_ERROR" /></root><!-- 特定包的日志级别配置示例 --><logger name="com.yourpackage.service" level="DEBUG" additivity="false"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE_ALL" /></logger><!-- 第三方库日志级别控制 --><logger name="org.hibernate" level="WARN" /><logger name="org.springframework" level="INFO" />
</configuration>

3. 使用@Slf4j注解记录日志

在Java类中使用Lombok的@Slf4j注解:

import lombok.extern.slf4j.Slf4j;@Slf4j
public class ExampleService {public void process() {log.trace("这是一条TRACE级别日志");log.debug("这是一条DEBUG级别日志 - 用于调试");log.info("这是一条INFO级别日志 - 业务信息");log.warn("这是一条WARN级别日志 - 警告信息");log.error("这是一条ERROR级别日志 - 错误信息");try {// 模拟可能出错的代码int result = 10 / 0;} catch (Exception e) {log.error("处理过程中发生错误: ", e);}}public static void main(String[] args) {ExampleService service = new ExampleService();service.process();// 打印日志文件位置信息log.info("日志文件保存在: D:/logs/ 目录下");}
}

4. 确保D盘logs目录存在

在运行应用程序前,请确保D盘logs目录存在,或者应用程序有权限创建该目录。您也可以添加以下代码在应用程序启动时创建目录:

import java.io.File;public class LogDirectoryCreator {public static void ensureLogDirectoryExists() {File logDir = new File("D:/logs");if (!logDir.exists()) {boolean created = logDir.mkdirs();if (created) {System.out.println("创建日志目录: " + logDir.getAbsolutePath());} else {System.err.println("无法创建日志目录: " + logDir.getAbsolutePath());}}}
}

在应用程序启动时调用:

import lombok.extern.slf4j.Slf4j;@Slf4j
public class LogTest {public static void main(String[] args) {log.trace("TRACE级别消息");log.debug("DEBUG级别消息");log.info("INFO级别消息");log.warn("WARN级别消息");log.error("ERROR级别消息");try {throw new RuntimeException("测试异常");} catch (Exception e) {log.error("捕获到异常", e);}System.out.println("请检查D:/logs/目录下的日志文件");}
}

7. 测试配置

创建一个简单的测试类来验证配置是否正常工作:

import lombok.extern.slf4j.Slf4j;@Slf4j
public class LogTest {public static void main(String[] args) {log.trace("TRACE级别消息");log.debug("DEBUG级别消息");log.info("INFO级别消息");log.warn("WARN级别消息");log.error("ERROR级别消息");try {throw new RuntimeException("测试异常");} catch (Exception e) {log.error("捕获到异常", e);}System.out.println("请检查D:/logs/目录下的日志文件");}
}

 

 

http://www.sczhlp.com/news/30662/

相关文章:

  • 广州网站建设 易点廊坊seo关键词排名
  • 四川住房与城乡城乡建设厅网站公司网址怎么注册
  • 网站弹出qq聊天窗口附近电脑培训班零基础
  • 东莞做网站要多少钱发帖百度秒收录网站分享
  • 淄博网站优化公司百度官网链接
  • 安徽合肥市城乡建设委员会网站建站seo推广
  • wordpress入门教程8做seo推广一年大概的费用
  • 嘉鱼网站建设公司临沂网站seo
  • 门户网站建设公司流程搜索引擎成功案例分析
  • 深圳自适应网站建设百度投诉中心24小时电话
  • 成都有实力的网站建设seo入门基础教程
  • 济南网站建设泉诺seo数据优化教程
  • 驻马店 网站制作免费推广的方式有哪些
  • 汕头网站建设报价百度指数排行榜
  • 深圳企业医疗网站建设营销网
  • 中山移动网站设计优化电脑的软件有哪些
  • 河源网站建设工作室独立站seo
  • 专题:2025智能体研究报告|附70份报告PDF、原数据表汇总下载
  • js逆向之webpack自吐模块设置方式
  • 哪个公司做网站佛山网站建设正规公司
  • 深圳网站商城建设沈阳百度推广排名优化
  • java门户网站开发教程最新的域名网站
  • 在百度做推广送网站好吗网络营销常用工具
  • 如何用普通电脑做网站服务器百度pc网页版入口
  • 企业门户网站什么意思疫情最新消息今天
  • MATLAB R2025a激活教程及安装教程保姆级图文步骤(附安装包下载)
  • 网站图片用什么软件做公司网站页面设计
  • 站酷网页设计分析广州品牌seo推广
  • 杭州市人民政府seo推广培训费用
  • 影视网站如何做网站建设与营销经验