daily 20170612 log日志的使用 - wtdig/study GitHub Wiki

参考文档:http://note.youdao.com/noteshare?id=4f327f05d44a30ab1ebe6af02ab43125

在代码中为了知道程序的行为的状态, 我们一般会打印一条日志:

Java代码 收藏代码 log.info("Happy and carefree logging");

在所有的日志框架中, 我认为最好的是SLF4J. 比如在Log4J中我们会这样写: Java代码 收藏代码 log.debug("Found " + records + " records matching filter: '" + filter + "'");

而在SLF4J中我们会这样写: Java代码 收藏代码 log.debug("Found {} records matching filter: '{}'", records, filter);

参考资料:http://blog.csdn.net/cl1107056481/article/details/39579845


指定log4j日志的输出

log4j的jar包:maven坐标

org.slf4j slf4j-log4j12 1.7.2

1、可以指定某个包下的日志打印到某个位置

2、可以指定某个具体类的日志打印到某个位置

参考配置文件如下:log4j.properties

默认的日志配置

log4j.rootLogger=INFO, logfile

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.logfile.DatePattern='.'yyyy-MM-dd

log4j.appender.logfile.File=C:\\logdemo\\ALL.log

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n

指定cn.wt.log4j.service包下日志输出到C:\\logdemo\\1.log

log4j.logger.cn.wt.log4j.service=INFO, myappender

log4j.additivity.cn.wt.log4j.service=false

log4j.appender.myappender=org.apache.log4j.DailyRollingFileAppender

log4j.appender.myappender.DatePattern='.'yyyy-MM-dd

log4j.appender.myappender.File=C:\\logdemo\\1.log

log4j.appender.myappender.layout=org.apache.log4j.PatternLayout

log4j.appender.myappender.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n

指定cn.wt.log4j.dao.impl.Log4jDaoImpl该类的日志输出到C:\\logdemo\\dao.log

log4j.logger.cn.wt.log4j.dao.impl.Log4jDaoImpl=INFO, myappenderdao

log4j.additivity.cn.wt.log4j.dao.impl.Log4jDaoImpl=false

log4j.appender.myappenderdao=org.apache.log4j.DailyRollingFileAppender

log4j.appender.myappenderdao.DatePattern='.'yyyy-MM-dd

log4j.appender.myappenderdao.File=C:\\logdemo\\dao.log

log4j.appender.myappenderdao.layout=org.apache.log4j.PatternLayout

log4j.appender.myappenderdao.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n


实例

1、pom文件

<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>cn.wt.logdemo</groupId>
	<artifactId>log4jdemo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>4.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
			<version>4.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.2</version>
		</dependency>
	</dependencies>
</project>

2、配置文件

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:util="http://www.springframework.org/schema/util" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xmlns:cache="http://www.springframework.org/schema/cache"
	xsi:schemaLocation="  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context.xsd  
    http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans.xsd  
    http://www.springframework.org/schema/tx  
    http://www.springframework.org/schema/tx/spring-tx.xsd  
    http://www.springframework.org/schema/jdbc  
    http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd  
    http://www.springframework.org/schema/cache  
    http://www.springframework.org/schema/cache/spring-cache-3.1.xsd  
    http://www.springframework.org/schema/aop  
    http://www.springframework.org/schema/aop/spring-aop.xsd  
    http://www.springframework.org/schema/util  
    http://www.springframework.org/schema/util/spring-util.xsd">
	<bean id="log4jService" class="cn.wt.log4j.service.impl.Log4jServiceImpl">
		<property name="log4jDao" ref="log4jDao"></property>
	</bean>
	<bean id="log4jDao" class="cn.wt.log4j.dao.impl.Log4jDaoImpl"></bean>
</beans>

log4j.properties

log4j.rootLogger=INFO, logfile

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.File=C:\\logdemo\\ALL.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n

log4j.logger.cn.wt.log4j.service=INFO, myappender
log4j.additivity.cn.wt.log4j.service=false

log4j.appender.myappender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myappender.DatePattern='.'yyyy-MM-dd
log4j.appender.myappender.File=C:\\logdemo\\1.log
log4j.appender.myappender.layout=org.apache.log4j.PatternLayout
log4j.appender.myappender.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n

log4j.logger.cn.wt.log4j.dao.impl.Log4jDaoImpl=INFO, myappenderdao
log4j.additivity.cn.wt.log4j.dao.impl.Log4jDaoImpl=false

log4j.appender.myappenderdao=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myappenderdao.DatePattern='.'yyyy-MM-dd
log4j.appender.myappenderdao.File=C:\\logdemo\\dao.log
log4j.appender.myappenderdao.layout=org.apache.log4j.PatternLayout
log4j.appender.myappenderdao.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n

3、代码

package cn.wt.log4j.dao;

/**
 * @author wb-wt261136
 * @version 2017年7月28日 下午2:19:55
 */
public interface Log4jDao {

    void say();
}

package cn.wt.log4j.dao.impl;

import org.apache.log4j.Logger;

import cn.wt.log4j.dao.Log4jDao;

/**
 * @author wb-wt261136
 * @version 2017年7月28日 下午2:20:41
 */
public class Log4jDaoImpl implements Log4jDao {

    static Logger logger = Logger.getLogger(Log4jDaoImpl.class);

    public void say() {
        logger.info("dao>>>>>");
        System.out.println("test>>>>>>");
    }

}


package cn.wt.log4j.service;

/**
 * @author wb-wt261136
 * @version 2017年7月28日 下午2:18:29
 */
public interface Log4jService {

    void login();
}

package cn.wt.log4j.service.impl;

import org.apache.log4j.Logger;

import cn.wt.log4j.dao.Log4jDao;
import cn.wt.log4j.service.Log4jService;

/**
 * @author wb-wt261136
 * @version 2017年7月28日 下午2:15:58
 */
public class Log4jServiceImpl implements Log4jService {

    static Logger    logger = Logger.getLogger(Log4jServiceImpl.class);

    private Log4jDao log4jDao;

    public void setLog4jDao(Log4jDao log4jDao) {
        this.log4jDao = log4jDao;
    }

    public void login() {
        logger.info("login+>>>>>");
        log4jDao.say();
    }

}

package cn.wt.log4j.test;

import cn.wt.log4j.service.Log4jService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.junit.Test;

/**
 * @author wb-wt261136
 * @version 2017年7月28日 下午2:25:09
 */
public class Log4jTest {

    @Test
    public void log4jTe() {
        @SuppressWarnings("resource")
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Log4jService bean = (Log4jService) context.getBean("log4jService");
        bean.login();
    }
}

⚠️ **GitHub.com Fallback** ⚠️