0
点赞
收藏
分享

微信扫一扫

CentOS:vi的用法大全

认真的老去 04-09 07:30 阅读 1

Logback 是一个灵活而高效的日志框架,它是由 Ceki Gülcü 开发的,也是 Log4j 的创建者之一。Logback 旨在成为 Log4j 的替代品,并提供了一系列强大的功能和性能改进。

以下是 Logback 的一些主要特点和功能:

  1. 模块化结构: Logback 由多个模块组成,包括 logback-core、logback-classic 和 logback-access。其中,logback-core 是核心模块,提供了基本的日志功能;logback-classic 是 Log4j 的替代实现,向下兼容 Log4j API,并提供了更高的性能;logback-access 是一个可选的模块,用于记录 Web 应用程序的访问日志。

  2. 灵活的配置: Logback 使用 XML 配置文件(logback.xml)进行配置,可以通过配置文件灵活地配置日志输出格式、日志级别、日志文件路径等各种参数,支持动态重新加载配置。

  3. 多种日志输出: Logback 支持多种日志输出方式,包括输出到控制台、输出到文件、输出到数据库等,可以根据需要配置多个不同的 Appender。

  4. 异步日志: Logback 支持异步日志记录,可以提高日志记录的性能,避免日志记录操作对应用程序性能的影响。

  5. 过滤器支持: Logback 提供了丰富的过滤器功能,可以根据日志消息的内容、级别等条件对日志进行过滤和筛选,灵活控制日志的输出。

  6. 自定义布局: Logback 允许开发者自定义日志的输出格式,可以根据需要定义自己的日志布局模式,满足不同项目的日志格式需求。

  7. 可扩展性: Logback 提供了丰富的插件和扩展点,可以扩展其功能,满足特定项目的需求,例如自定义 Appender、过滤器等。

总的来说,Logback 是一个功能强大、灵活易用的日志框架,适用于各种规模的 Java 项目,能够帮助开发者实现高效、灵活的日志记录和管理。在 Spring 应用程序中,Logback 通常被用作日志记录的主要框架,并与 Spring Boot 紧密集成,为开发者提供了简单而强大的日志记录解决方案。

1、引用Maven依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.7.9</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.32</version>
</dependency>

2、YAML配置

#日志
logging:
  #日志级别
  level:
    com:
      test: debug
  # 设置logback.xml位置
  config: classpath:logback/logback-spring.xml

3、logback-spring.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
	<!--定义日志文件的存储地址 -->
	<property name="LOG_HOME" value="../../logs" />

	<!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />-->
	<!-- 控制台输出 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>-->
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern>
		</encoder>
	</appender>

	<!-- 按照每天生成日志文件 -->
	<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<!--日志文件输出的文件名 -->
			<FileNamePattern>${LOG_HOME}/webapp-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
			<!--日志文件保留天数 -->
			<MaxHistory>30</MaxHistory>
			<maxFileSize>10MB</maxFileSize>
		</rollingPolicy>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
		</encoder>
	</appender>

	<!-- 生成 error html格式日志开始 -->
	<appender name="HTML" class="ch.qos.logback.core.FileAppender">
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<!--设置日志级别,过滤掉info日志,只输入error日志-->
			<level>ERROR</level>
		</filter>
		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
			<layout class="ch.qos.logback.classic.html.HTMLLayout">
				<pattern>%p%d%msg%M%F{32}%L</pattern>
			</layout>
		</encoder>
		<file>${LOG_HOME}/error-log.html</file>
	</appender>
	<!-- 生成 error html格式日志结束 -->

	<!-- 每天生成一个html格式的日志开始 -->
	<appender name="FILE_HTML" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<!--日志文件输出的文件名 -->
			<FileNamePattern>${LOG_HOME}/webapp-%d{yyyy-MM-dd}.%i.html</FileNamePattern>
			<!--日志文件保留天数 -->
			<MaxHistory>30</MaxHistory>
			<MaxFileSize>10MB</MaxFileSize>
		</rollingPolicy>
		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
			<layout class="ch.qos.logback.classic.html.HTMLLayout">
				<pattern>%p%d%msg%M%F{32}%L</pattern>
			</layout>
		</encoder>
	</appender>
	<!-- 每天生成一个html格式的日志结束 -->

	<!--myibatis log configure -->
	<logger name="com.apache.ibatis" level="TRACE" />
	<logger name="java.sql.Connection" level="DEBUG" />
	<logger name="java.sql.Statement" level="DEBUG" />
	<logger name="java.sql.PreparedStatement" level="DEBUG" />

	<!-- 日志输出级别 -->
	<root level="INFO">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
		<appender-ref ref="HTML" />
		<appender-ref ref="FILE_HTML" />
	</root>

</configuration>
举报

相关推荐

0 条评论