莫大人

slf4j简单使用

一 slf4j+log4j

1.添加依赖

        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>
        
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.21</version>
</dependency>

2.添加 log4j.properties

# This is the configuring for logging displayed in the Application Server
log4j.rootCategory=DEBUG, stdout, rollFile

#\u63A7\u5236\u53F0\u8F93\u51FA
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %t [%5p] %l - <%m> %n

#\u6587\u4EF6\u8F93\u51FA
log4j.appender.rollFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollFile.layout.ConversionPattern=%d %t [%5p] %l - <%m> %n
log4j.appender.rollFile.File=C:/Users/Administrator/Desktop/war.log
log4j.appender.rollFile.MaxFileSize=50MB
log4j.appender.rollFile.MaxBackupIndex=20

#\u65E5\u5FD7
log4j.logger.org.springframework.web=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG  
log4j.logger.java.sql.Connection=DEBUG  
log4j.logger.java.sql.Statement=DEBUG  
log4j.logger.java.sql.PreparedStatement=DEBUG 

3.测试

package com.qi.crm.util.test;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogTest {
    
     private static final Logger LOG = LoggerFactory.getLogger(LogTest.class);  
     
     public static void main(String[] args) {
         LOG.info("Hello {}","SLF4J");
    }
}

 二 slf4j+logback

1.添加依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yun</groupId>
    <artifactId>kong</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>kong Maven Webapp</name>
    <url>http://maven.apache.org</url>

    <properties>
        <spring.version>4.2.5.RELEASE</spring.version>
        <druid.version>1.0.5</druid.version>
        <mysql.version>5.1.40</mysql.version>
        <slf4j.version>1.7.7</slf4j.version>
        <logback.version>1.1.2</logback.version>
        <servlet.version>2.5</servlet.version>
        <fastjson.version>1.2.8</fastjson.version>
        <freemarker.version>2.3.23</freemarker.version>
        <mybatis.version>3.3.1</mybatis.version>
        <mybatis-spring.version>1.2.5</mybatis-spring.version>
        <mysql.connector.version>5.1.30</mysql.connector.version>
    </properties>

    <dependencies>
        <!-- springmvc start -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- springmvc end -->
        
        
        <!-- logback -->
        <dependency>
        <!--主要介绍的是这个jar包,这个包是负责logback随着项目启动的jar包-->
            <groupId>org.logback-extensions</groupId>
            <artifactId>logback-ext-spring</artifactId>
            <version>0.1.4</version>
        </dependency>
        <!-- slf4j start -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-access</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <!-- slf4j end -->
    </dependencies>
    <build>
        <finalName>kong</finalName>
    </build>
</project>

 

  

2.配置 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="20 seconds">

	<property resource="log.properties"></property>

	<property scope="system" name="SYSTEM_NAME" value="${log.system.name}" />
	<property scope="system" name="LOG_DIR" value="${log.dir}" />
	<property scope="system" name="ROOT_LEVEL" value="${log.root.level}" />

	<!-- 系统日志 -->
	<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_DIR}/${SYSTEM_NAME}/system.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>5000MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n</pattern>
		</encoder>
	</appender>


	<!-- 控制台日志 -->
	<appender name="ROOT_STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
			</pattern>
		</encoder>
	</appender>

	<root level="${ROOT_LEVEL}">
		<appender-ref ref="ROOT_APPENDER" />    <!-- 系统日志 -->
		<appender-ref ref="ROOT_STDOUT" />      <!-- 控制台输出 -->
		<appender-ref ref="LOGSTASH" />         <!-- 日志集中化 -->
	</root>

</configuration>

3.web.xml 中配置监听器 ,也可以不用配置,默认的

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <display-name>kong</display-name>
    <!-- 应用路径 -->
    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>kong</param-value>
    </context-param>

    <context-param>
        <param-name>logbackConfigLocation</param-name>
        <param-value>classpath:logback.xml</param-value>
    </context-param>

    <listener>
        <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                classpath:springMvc.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

 

  

3.添加 log.properties 当然你也可以不写,直接将值写在logback.xml中

log.system.name=bmp
log.dir=C:\\Users\\Administrator\\Desktop\\logs
log.root.level=DEBUG

  

posted on 2017-03-01 21:13  莫大人  阅读(319)  评论(0编辑  收藏  举报

导航