`

日志LogBack

    博客分类:
  • java
 
阅读更多

需要自定义一个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中加入

 

[xhtml] view plaincopy
 
  1. <!--初始化日志配置文件 -->  
  2.  <listener>  
  3.      <listener-class>  
  4.          com.sj.common.listener.LogbackConfigListener  
  5.      </listener-class>  
  6.  </listener>  
  7.  <context-param>  
  8.      <param-name>logbackConfigLocation</param-name>  
  9.      <param-value>WEB-INF/logback.xml</param-value>  
  10.  </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这一强大的日志框架,结合WebSocket技术,实现实时的日志传输。Logback是Java世界中广泛使用的日志记录工具,它提供了高效的日志记录功能,而WebSocket则...

    Springboot 日志logback-spring.xml 配置文件

    用于日志配置

    SpringBoot Logback配置,SpringBoot日志配置

    Logback是Spring Boot默认的日志系统,它提供了灵活且高效的日志记录能力。本文将深入探讨如何配置SpringBoot的Logback以满足不同日志需求。 首先,我们来看`logback-spring.xml`这个文件。它是Logback的日志配置...

    关闭HttpClient日志的logback文件

    关闭HttpClient日志的logback文件

    shiro简单登录+logback日志记录

    《Shiro简单登录+Logback日志记录》 在现代Web开发中,权限管理和日志记录是两个不可或缺的环节。Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、会话管理和加密等功能,而Logback作为Log4j的替代...

    Java开发-日志管理-logback框架日志系统基础

    在日常工程开发中,日志是非常重要的一部分,通过日志可以迅速定位线上问题,日志框架也有很多选择,日志框架Logback和Log4j是同一个作者,Logback相比于Log4j,性能提高了10倍以上的性能,占用的内存也变小了,并且...

    日志(logback)

    日志(logback)

    采用slf4j+logback输出日志

    Logback是SLF4J的一个实现,由著名日志框架Log4j的创始人Ceki Gülcü所创建。Logback被认为是比Log4j更高效、功能更强大的日志处理框架。 本文将详细介绍如何使用SLF4J与Logback来输出应用程序的日志,并提供必要...

    扩展logback将日志输出到Kafka实例源码

    Logback是一个广泛使用的Java日志框架,它提供了高效、灵活的日志记录功能。而Kafka是一个分布式流处理平台,常用于实时数据管道和流应用,它具有高吞吐量、可持久化以及容错性等特性。当我们需要将日志实时地传输到...

    logback日志记录写入kafka

    Logback是一款广泛使用的Java日志框架,它提供了高效且灵活的日志记录功能。SLF4J(Simple Logging Facade for Java)则是一个日志抽象层,允许开发者在不修改代码的情况下更换不同的日志实现。本主题将详细介绍如何...

    Logback+Slf4j,基于SpringBoot实现日志脱敏.zip

    《基于SpringBoot的日志脱敏:Logback与Slf4j的实战应用》 在现代的软件开发中,日志系统是不可或缺的一部分,它为开发者提供了系统运行时的详细信息,帮助排查问题,优化性能。SpringBoot框架以其简洁的配置和强大...

    springboot整合日志管理Logback.zip

    SpringBoot整合日志管理Logback是一项关键的开发任务,它涉及到Spring Boot框架、Java后端编程以及日志处理。在现代软件开发中,日志记录是必不可少的,它可以帮助开发者追踪程序运行状态、定位错误、优化性能。...

    springboot+logback输出日志文件1

    Spring Boot 使用 Logback 输出日志文件 Spring Boot 提供了多种日志记录工具,包括 Logback、Log4J2 和 Java Util Logging。默认情况下,Spring Boot 使用 Logback 作为日志记录工具。在日志记录过程中,我们可以...

    Tomcat日志catalina.out过大解决方案--使用logback按日轮转.rar

    为了解决这个问题,我们可以引入`Logback`,一个强大的、灵活的日志框架,来替代默认的日志处理方式,实现日志的按日轮转。 `Logback`由著名的`Log4j`创始人Ceki Gülcü创建,它提供了更高效的日志处理机制,并且...

    springboot日志框架logback异步输出配置

    目前所有的日志记录方式采用的都是同步的方式,即直接将日志写入文件。每次日志输出到文件都会进行一次磁盘IO,在多应用的时候这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。 采用异步写日志的...

    logback日志配置

    ### Logback日志配置详解 #### 一、Logback简介 Logback 是一款非常流行的 Java 日志框架,它由 Ceki Gülcü 开发并维护,作为 log4j 的一个优秀替代品出现。Logback 相对于 log4j 有着更好的性能表现,并且拥有...

    logback下载 日志文件jar包

    Logback 是一款广泛使用的日志记录框架,由 Ceki Gülcü 创建,作为其先前作品 Log4j 的改进版。这个压缩包包含了实现 Logback 功能所需的几个关键组件,以及一个配置文件,使得用户能够方便地管理和记录应用程序的...

    java的Logback日志框架jar包

    Logback 是一个在Java开发中广泛使用的日志记录框架,由Ceki Gülcü创造,他是之前流行的log4j框架的创始人。Logback是作为log4j的替代品设计的,它提供了更高的性能和更多的特性。这个压缩包包含了Logback框架的...

    Logback日志系统文件

    Logback是由log4j创始人设计的另一个开源日志组件,基于slf4j的日志规范实现的框架,性能比log4j要好。 Logback主要分为三个技术模块: logback-core:该模块为其他两个模块奠定了基础。 logback-classic:是log4j...

    logback日志的jar包和配置介绍

    logback日志的jar包和配置介绍:logback-classic-1.1.2.jar、logback-core-1.1.2.jar、slf4j-api-1.7.7.jar、logback.xml、rsframework.properties

Global site tag (gtag.js) - Google Analytics