logback 配置日志打印颜色

本文详细介绍了如何在Logback中使用多种颜色标记日志,通过实例展示了如何设置打印格式和过滤器,适用于开发人员的日志管理需求。

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

  1. logback可配置多种颜色,支持: “%black”, “%shired”, “%green”,“%yellow”,“%blue”, “%magenta”,“%cyan”, “%white”, “%gray”, “%boldRed”,“%boldGreen”, “%boldYellow”, “%boldBlue”, “%boldMagenta”“%boldCyan”, “%boldWhite” , “%highlight”
  2. 使用方法:在日志打印的参数前增加“%颜色”并用括号包裹起来,即可以配置此参数的打印颜色。
    例如:
    在这里插入图片描述
  3. 完整配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径 -->
	<property name="log.path" value="logs" />
   <!-- 日志输出格式 -->
	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%highlight(%thread)] %highlight(%-5level) %logger{20} - [%blue(%method),%line] - %msg%n" />

    <!-- 控制台输出 -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
	</appender>

    <!-- 系统日志输出 -->
	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
		</rollingPolicy>
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
	</appender>

    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/error.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>ERROR</level>
			<!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
			<!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 系统模块日志级别控制  -->
	<logger name="cn.yzlsoft.project" level="info" />
	<!-- Spring日志级别控制  -->
	<logger name="org.springframework" level="warn" />

	<root level="info">
		<appender-ref ref="console" />
	</root>
	
	<!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>
</configuration>
  1. 参考官方文档:官方链接
### 配置 Logback 打印 SQL 语句 为了确保 `logback.xml` 能够捕获并打印 SQL 语句,配置文件应包含适当的日志级别和 appender 设置。对于 JDBC 操作而言,通常需要关注数据源或 JDBC 驱动级别的日志[^1]。 #### 日志级别设定 在 `logback.xml` 中,可以针对特定包设置较低的日志级别(如 DEBUG 或 TRACE),从而允许这些组件输出详细的执行信息,包括 SQL 查询: ```xml <logger name="org.springframework.jdbc.core.JdbcTemplate" level="DEBUG"/> <logger name="com.zaxxer.hikari.HikariDataSource" level="DEBUG"/> ``` 上述配置使得 Spring 的 JdbcTemplate 和 HikariCP 数据库连接池能够记录其内部活动详情,其中就涵盖了所执行的 SQL 文字串[^2]。 #### 控制台 Appender 输出格式优化 为了让控制台上显示出来的 SQL 更加直观易读,可自定义 PatternLayout 来美化输出样式。例如下面这段 XML 定义了一个带有颜色编码的时间戳、线程名、日志等级等元数据字段,并且每条消息前后加上分隔符以增强辨识度[^4]: ```xml <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %cyan([%thread]) %highlight(%-5level) %green(%logger{36}) - %boldYellow(%n%msg%n)%red(--------------------------)%n</pattern> </encoder> </appender> ``` 此模式不仅让 SQL 语句更加醒目,而且有助于快速定位问题所在位置。 通过以上方法调整后的 `logback.xml` 可有效帮助开发者监控应用程序中的数据库交互情况,提高开发效率的同时也便于后期维护工作开展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值