slg+log4j配置 博客分类: log log4jjava配置日志输出
JAVA程序离不开日志的支持,特别是生成环境服务器,查问题的时候更是离不开日志的支持,现将slf+log4j整合到spring框架中的配置写一下:
项目结构如下:
一、在web.xml中添加log4j的配置文件和监听器
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:resources/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
二、设置log4j配置文件,位置src/resources/log4j.properties,内容如下:
log4j.rootLogger=DEBUG,stdout,InfoFile,ErrorFile
#kong zhi tai shu chu she ding
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout.ConversionPattern=Log4j:[%d{yyyy-MM-dd HH:mm:ss}] %5p %c{1}:%L - %m%n
#info
log4j.appender.InfoFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.InfoFile.Threshold=DEBUG
log4j.appender.InfoFile.file=${catalina.base}/logs/activitiLogs/InfoFile.log
log4j.appender.InfoFile.DatePattern='.'yyyy-MM-dd
log4j.appender.InfoFile.layout=org.apache.log4j.PatternLayout
log4j.appender.InfoFile.layout.ConversionPattern=Log4j:[%d{yyyy-MM-dd HH:mm:ss}] %5p %c{1}:%L - %m%n
#error
log4j.appender.ErrorFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ErrorFile.Threshold=Error
log4j.appender.ErrorFile.File=${catalina.base}/logs/activitiLogs/ErrorFile.log
log4j.appender.ErrorFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ErrorFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ErrorFile.layout.ConversionPattern=Log4j:[%d{yyyy-MM-dd HH:mm:ss}] %5p %c{1}:%L - %m%n
配置中主要设置了控制台、info日志文件和error日志文件的产出:
控制台:输出Debug及以上的日志信息
info、error日志文件:
输出DEBUG及以上日志信息;
每天产生一个新的日志文件;
${catalina.base}表示tomcat服务器根目录(bin文件夹和conf文件夹的父目录);
eclipse中直接启动Tomcat插件服务,则日志输出在workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\logs\activitiLogs(tmp3是会改变的,规律是tmp*);
info级别的只会输入在InfoFile.log文件中,error级别的日志会同时出现在InfoFile.log和errorFile.log文件中;
配置文件还可以设置单个类产生的日志信息单独输出到一个日志文件中,此处没有进行这么细致的配置,仅仅简单的根据级别区分了一下
三、java代码中调用
package com.pb.modult.admin.biz.service;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.pb.modult.admin.biz.bo.AdminBO;
/**
* 管理员
* @author Administrator
*
*/
@Service
public class AdminService {
@Autowired
private AdminBO adminBO;
Logger logger = Logger.getLogger(AdminService.class);
org.slf4j.Logger logger2 = org.slf4j.LoggerFactory.getLogger("InfoFile");
public void login(){
logger.info("info日志");
logger.error("error日志");
logger2.debug("debug日志,主键{}", "主键值");
}
}
slf可以设置占位符直接进行字符串的拼接
推荐阅读
-
slg+log4j配置 博客分类: log log4jjava配置日志输出
-
Log4j配置详解 博客分类: 日志框架 log4j配置
-
log4j日志分级别输出到不同文件 博客分类: 程序开发 log4j分文件日志分级log
-
tomcat应用中使用aspectj输出服务器端的访问日志 博客分类: 开发配置架构 aspectjtracetomcat日志
-
Spark的日志配置 博客分类: spark 日志配置集群spark
-
log4j输出多个自定义日志文件 博客分类: java 日志
-
zookeeper的log4j配置真是失败的典范 博客分类: 杂谈大数据
-
Log4J基础详解及示例大全 博客分类: 日志组件 log4jjava
-
Log4J基础详解及示例大全 博客分类: 日志组件 log4jjava
-
日志框架---属性文件配置信息解释 博客分类: log4j log4j