需要自定义一个Listener 来加载配置文件
package com.sj.common.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.joran.JoranConfigurator; import ch.qos.logback.core.joran.spi.JoranException; /** * * @author longload * */ public class LogbackConfigListener implements ServletContextListener { private static final Logger logger = LoggerFactory.getLogger(LogbackConfigListener.class); private static final String CONFIG_LOCATION = "logbackConfigLocation"; @Override public void contextInitialized(ServletContextEvent event) { //从web.xml中加载指定文件名的日志配置文件 String logbackConfigLocation = event.getServletContext().getInitParameter(CONFIG_LOCATION); String fn = event.getServletContext().getRealPath(logbackConfigLocation); try { LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory(); loggerContext.reset(); JoranConfigurator joranConfigurator = new JoranConfigurator(); joranConfigurator.setContext(loggerContext); joranConfigurator.doConfigure(fn); logger.debug("loaded slf4j configure file from {}", fn); } catch (JoranException e) { logger.error("can loading slf4j configure file from " + fn, e); } } @Override public void contextDestroyed(ServletContextEvent event) { } }
在web.xml中加入
- <!--初始化日志配置文件 -->
- <listener>
- <listener-class>
- com.sj.common.listener.LogbackConfigListener
- </listener-class>
- </listener>
- <context-param>
- <param-name>logbackConfigLocation</param-name>
- <param-value>WEB-INF/logback.xml</param-value>
- </context-param>
配置文件
<?xml version="1.0" encoding="UTF-8"?> <configuration> <jmxConfigurator /> <!-- 控制台输出日志 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <Encoding>UTF-8</Encoding> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %logger{36} -line: %L - %msg%n</pattern> </layout> </appender> <!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份)--> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <Encoding>UTF-8</Encoding> <File>service_debug.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <FileNamePattern>service.log.%i.bak</FileNamePattern> <MinIndex>1</MinIndex> <MaxIndex>12</MaxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -line: %L - %msg%n</Pattern> </layout> </appender> <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <OnMismatch>DENY</OnMismatch> <OnMatch>ACCEPT</OnMatch> </filter> <File>service-err.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <FileNamePattern>service-err.log.%i.bak</FileNamePattern> <MinIndex>1</MinIndex> <MaxIndex>3</MaxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -line: %L - %msg%n</Pattern> </layout> </appender> <!--这里指定logger name 是为jmx设置日志级别做铺垫 --> <logger name="com.sj"> <level value="DEBUG" /> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> <appender-ref ref="FILE-ERROR" /> </logger> <root> <level value="DEBUG" /> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> <appender-ref ref="FILE-ERROR" /> </root> </configuration>
相关推荐
标题中的“将Logback日志输出到websocket”指的是利用Logback这一强大的日志框架,结合WebSocket技术,实现实时的日志传输。Logback是Java世界中广泛使用的日志记录工具,它提供了高效的日志记录功能,而WebSocket则...
用于日志配置
Logback是Spring Boot默认的日志系统,它提供了灵活且高效的日志记录能力。本文将深入探讨如何配置SpringBoot的Logback以满足不同日志需求。 首先,我们来看`logback-spring.xml`这个文件。它是Logback的日志配置...
关闭HttpClient日志的logback文件
《Shiro简单登录+Logback日志记录》 在现代Web开发中,权限管理和日志记录是两个不可或缺的环节。Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、会话管理和加密等功能,而Logback作为Log4j的替代...
在日常工程开发中,日志是非常重要的一部分,通过日志可以迅速定位线上问题,日志框架也有很多选择,日志框架Logback和Log4j是同一个作者,Logback相比于Log4j,性能提高了10倍以上的性能,占用的内存也变小了,并且...
日志(logback)
Logback是SLF4J的一个实现,由著名日志框架Log4j的创始人Ceki Gülcü所创建。Logback被认为是比Log4j更高效、功能更强大的日志处理框架。 本文将详细介绍如何使用SLF4J与Logback来输出应用程序的日志,并提供必要...
Logback是一个广泛使用的Java日志框架,它提供了高效、灵活的日志记录功能。而Kafka是一个分布式流处理平台,常用于实时数据管道和流应用,它具有高吞吐量、可持久化以及容错性等特性。当我们需要将日志实时地传输到...
Logback是一款广泛使用的Java日志框架,它提供了高效且灵活的日志记录功能。SLF4J(Simple Logging Facade for Java)则是一个日志抽象层,允许开发者在不修改代码的情况下更换不同的日志实现。本主题将详细介绍如何...
《基于SpringBoot的日志脱敏:Logback与Slf4j的实战应用》 在现代的软件开发中,日志系统是不可或缺的一部分,它为开发者提供了系统运行时的详细信息,帮助排查问题,优化性能。SpringBoot框架以其简洁的配置和强大...
SpringBoot整合日志管理Logback是一项关键的开发任务,它涉及到Spring Boot框架、Java后端编程以及日志处理。在现代软件开发中,日志记录是必不可少的,它可以帮助开发者追踪程序运行状态、定位错误、优化性能。...
Spring Boot 使用 Logback 输出日志文件 Spring Boot 提供了多种日志记录工具,包括 Logback、Log4J2 和 Java Util Logging。默认情况下,Spring Boot 使用 Logback 作为日志记录工具。在日志记录过程中,我们可以...
为了解决这个问题,我们可以引入`Logback`,一个强大的、灵活的日志框架,来替代默认的日志处理方式,实现日志的按日轮转。 `Logback`由著名的`Log4j`创始人Ceki Gülcü创建,它提供了更高效的日志处理机制,并且...
目前所有的日志记录方式采用的都是同步的方式,即直接将日志写入文件。每次日志输出到文件都会进行一次磁盘IO,在多应用的时候这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。 采用异步写日志的...
### Logback日志配置详解 #### 一、Logback简介 Logback 是一款非常流行的 Java 日志框架,它由 Ceki Gülcü 开发并维护,作为 log4j 的一个优秀替代品出现。Logback 相对于 log4j 有着更好的性能表现,并且拥有...
Logback 是一款广泛使用的日志记录框架,由 Ceki Gülcü 创建,作为其先前作品 Log4j 的改进版。这个压缩包包含了实现 Logback 功能所需的几个关键组件,以及一个配置文件,使得用户能够方便地管理和记录应用程序的...
Logback 是一个在Java开发中广泛使用的日志记录框架,由Ceki Gülcü创造,他是之前流行的log4j框架的创始人。Logback是作为log4j的替代品设计的,它提供了更高的性能和更多的特性。这个压缩包包含了Logback框架的...
Logback是由log4j创始人设计的另一个开源日志组件,基于slf4j的日志规范实现的框架,性能比log4j要好。 Logback主要分为三个技术模块: logback-core:该模块为其他两个模块奠定了基础。 logback-classic:是log4j...
logback日志的jar包和配置介绍:logback-classic-1.1.2.jar、logback-core-1.1.2.jar、slf4j-api-1.7.7.jar、logback.xml、rsframework.properties