您的位置:首页 > 编程语言 > Java开发

JAVA日志的三种方案

2017-12-12 14:35 148 查看
第一种:commons-logging+Log4J

a.maven依赖

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>

b.log4j配置

log4j.rootCategory=WARN, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

log4j.category.org.exam=DEBUG
log4j.category.org.springframework.beans.factory=INFO
c.代码使用
import org.apache.log4j.Logger;
public class UserService {
final Logger logger = Logger.getLogger(UserService.class);
public boolean save(){
logger.error("虽然A喜欢我,但是我喜欢B");
return true;
}
}


第二种:slf4j+Log4J

a.maven依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
b.log4j配置
log4j.rootCategory=WARN, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

log4j.category.org.exam=DEBUG
log4j.category.org.springframework.beans.factory=INFO
c.代码使用
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class UserService {
final Logger logger = LoggerFactory.getLogger(UserService.class);
public boolean save(){
logger.error("虽然{}喜欢我,但是我喜欢{}","A","B");
return true;
}
}
第三种:slf4j+logback

a.maven依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
b.logback配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yy.MM.dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.exam" level="debug" />
<logger name="org.springframework.beans.factory" level="info" />
<root level="warn">
<appender-ref ref="console"/>
</root>
</configuration>


更详细的说明可以参考logback

c.代码使用
log4j.rootCategory=WARN, stdout

log4j.appender.stdout=org.apache.log4j.Consol
4000
eAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

log4j.category.org.exam=DEBUG
log4j.category.org.springframework.beans.factory=INFO


题外说明

1.slf4j使用了编译时绑定来代替运行时发现,而且其还提供占位符绑定等功能。

2.在spring中使用slf4j记得maven排除common-logging的依赖引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: