eclipse输出框怎么屏蔽日志_浅谈常见的日志框架

本文介绍了Spring Boot默认使用Logback进行日志记录,并详细讲解了如何配置Logback和Log4j来控制日志级别,以及如何在eclipse中屏蔽日志输出。Logback的配置文件包括appilcation.yml和logback-spring.xml,日志级别从TRACE到FATAL。Spring Boot推荐使用logback-spring.xml进行配置,同时提供了logging.config属性以应对不同运行时环境的配置需求。对于Log4j,需要修改依赖并新增配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.日志框架比较

6088216605b7e48da3d176ee38b7e748.png

2.默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台
配置的Logback的文件

appilcation.yml (配置简单,功能简单)
logback-spring.xml (配置复杂,功能强大)

依赖:

org.springframework.boot

spring-boot-starter-logging

spring-boot-starter其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback,所以一般不需要额外引入

日志级别

TRACE < DEBUG < INFO < WARN < ERROR < FATAL
您还可以通过启动您的应用程序 —debug 标志来启用“调试”模式(开发的时候推荐开启),以下两种方式皆可:

  • 在运行命令后加入—debug标志,如:$ java -jar springTest.jar —debug

  • 在application.properties中配置debug=true,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。

根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载:

Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging):logging.properties

Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项(下面会提到)。
默认的命名规则,并且放在 src/main/resources下面即可

如果你即想完全掌控日志配置,但又不想用logback.xml作为Logback配置的名字,application.yml可以通过logging.config属性指定自定义的名字:
logging.config=classpath:logging-config.xml
虽然一般并不需要改变配置文件的名字,但是如果你想针对不同运行时Profile使用不同的日志配置,这个功能会很有用。
一般不需要这个属性,而是直接在logback-spring.xml中使用springProfile配置,不需要logging.config指定不同环境使用不同配置文件。

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

SpringBootDemo

name="LOG_PATH" value="D:\\JavaWebLogs" />

name="APPDIR" value="SpringBootDemo" />

name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">

${LOG_PATH}/${APPDIR}/log_error.log

class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

${LOG_PATH}/${APPDIR}/error/log-error-%d{yyyy-MM-dd}.%i.log

class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

2MB

true

class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n

utf-8

class="ch.qos.logback.classic.filter.LevelFilter">

error

ACCEPT

DENY

name="FILEWARN" class="ch.qos.logback.core.rolling.RollingFileAppender">

${LOG_PATH}/${APPDIR}/log_warn.log

class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

${LOG_PATH}/${APPDIR}/warn/log-warn-%d{yyyy-MM-dd}.%i.log

class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

2MB

true

class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n

utf-8

class="ch.qos.logback.classic.filter.LevelFilter">

warn

ACCEPT

DENY

name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">

${LOG_PATH}/${APPDIR}/log_info.log

class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

${LOG_PATH}/${APPDIR}/info/log-info-%d{yyyy-MM-dd}.%i.log

class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

2MB

true

class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n

utf-8

class="ch.qos.logback.classic.filter.LevelFilter">

info

ACCEPT

DENY

name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n

utf-8

class="ch.qos.logback.classic.filter.ThresholdFilter">

debug

name="org.springframework" level="WARN" />

name="org.hibernate" level="WARN" />

name="jdbc.audit" level="ERROR"/>

level="INFO">

ref="FILEERROR" />

ref="FILEWARN" />

ref="FILEINFO" />

ref="STDOUT" />

name="prod">

level="DEBUG">

ref="STDOUT"/>

name="dev">

level="DEBUG">

ref="CONSOLE"/>

3.Log4j:
修改依赖:

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-logging

org.springframework.boot

spring-boot-starter-log4j2

com.fasterxml.jackson.dataformat

jackson-dataformat-yaml

新增配置文件

Configuration:

status: warn

Properties: # 定义全局变量

Property: # 缺省配置(用于开发环境)。其他环境需要在VM参数中指定,如下:

# 测试:-Dlog.level.console=warn -Dlog.level.xjj=trace

# 生产:-Dlog.level.console=warn -Dlog.level.xjj=info

- name: log.level.console #控制台日志输出的级别

value: trace

- name: log.level.com.mars.mybatis.mapper

value: trace

- name: log.path

value: /Users/fandong/Desktop/logs #日志文件存储的位置

- name: project.name

value: Mars-DashBoard # 项目名称

Appenders:

Console: # 输出到控制台

name: CONSOLE

target: SYSTEM_OUT

ThresholdFilter:

level: ${sys:log.level.console} # “sys:”表示:如果VM参数中没指定这个变量值,则使用本文件中定义的缺省全局变量值

onMatch: ACCEPT

onMismatch: DENY

PatternLayout:

pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n"

RollingFile: # 输出到文件,超过128MB归档

- name: ROLLING_FILE

ignoreExceptions: false

fileName: ${log.path}/${project.name}.log #日志文件存储位置+文件名称

filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"

PatternLayout:

pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n"

Policies:

SizeBasedTriggeringPolicy:

size: "128 MB" #最大日志文件大小

DefaultRolloverStrategy:

max: 1000

Loggers:

Root:

level: info #日志输出级别

AppenderRef:

- ref: CONSOLE

- ref: ROLLING_FILE

Logger: # 为 com.jeiker.demo.mapper 包配置特殊的Log级别,方便调试 SQL 语句输出

- name: log.level.com.mars.mybatis.mapper

additivity: false

level: ${sys:log.level.com.mars.mybatis.mapper}

AppenderRef:

- ref: CONSOLE

- ref: ROLLING_FILE

使用:

protected final Logger logger = LoggerFactory.getLogger(this.getClass());

logger.trace("I am trace log.");

logger.debug("I am debug log.");

logger.warn("I am warn log.");

logger.error("I am error log.");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值