daily 20170612 log日志的使用 - wtdig/study GitHub Wiki
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);
log4j的jar包:maven坐标
org.slf4j slf4j-log4j12 1.7.21、可以指定某个包下的日志打印到某个位置
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
<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>
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
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();
}
}