Log4j常用配置及使用
Log4j常用配置及使用
2016-12-14
目录
1 添加log4j依赖
2 使用代码配置并调用log
2.1 代码配置LogConfiguration.java
2.2 调用
2.3 结果
3 使用Properties文件配置并调用
3.1 文件配置log4j.properties
3.2 调用
3.3 结果
4 按输出级别的种类保存内容到不同目的地
4.1 文件配置log4j.properties
4.2 调用
4.3 结果
参考
1 添加log4j依赖
maven的pom.xml文件中添加log4j依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>provided</scope>
</dependency>
2 使用代码配置并调用log
2.1 代码配置LogConfiguration.java
import java.util.Properties;
import org.apache.log4j.PropertyConfigurator; public class LogConfiguration {
public static void initLog(String logFilePath){
//声明日志文件存储路径以及文件名、格式
Properties prop = new Properties();
//配置日志输出的格式
prop.setProperty("log4j.rootLogger","info, toConsole, toFile");
prop.setProperty("log4j.appender.file.encoding","UTF-8" ); prop.setProperty("log4j.appender.toConsole","org.apache.log4j.ConsoleAppender");
prop.setProperty("log4j.appender.toConsole.Target","System.out");
prop.setProperty("log4j.appender.toConsole.layout","org.apache.log4j.PatternLayout ");
prop.setProperty("log4j.appender.toConsole.layout.ConversionPattern","[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n"); prop.setProperty("log4j.appender.toFile.file", logFilePath);
//每天产生一个日志文件
prop.setProperty("log4j.appender.toFile", "org.apache.log4j.DailyRollingFileAppender");
//服务器启动日志是追加,false:服务器启动后会生成日志文件把老的覆盖掉
prop.setProperty("log4j.appender.toFile.Append","true");
prop.setProperty("log4j.appender.toFile.Threshold", "info");
prop.setProperty("log4j.appender.toFile.layout", "org.apache.log4j.PatternLayout");
prop.setProperty("log4j.appender.toFile.layout.ConversionPattern", "[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n");
//[2017-03-31 14:10:44] [ERROR] HttpResponseAnalyze:31 - Not equal
//prop.setProperty("log4j.appender.toFile.layout.ConversionPattern", "[%d{yyyy-MM-dd HH:mm:ss}] [%p] %c{1}:%L - %m%n");
//设置每天生成一个文件名后添加的名称,备份名称:年月日.log
prop.setProperty("log4j.appender.toFile.DatePattern","'.'yyyy-MM-dd'.log'");
//使配置生效 PropertyConfigurator.configure(prop); } }
2.2 调用
import org.apache.log4j.Logger;
public class TestLog {
static Logger logger = Logger.getLogger(TestLog.class.getName());
public static void main(String[] args) {
LogConfiguration.initLog("D:\\log\\result.log");
logger.info("log info");
logger.warn("log warn");
logger.error("log error");
try {
Thread.sleep(2000);
}
catch(Exception ex)
{}
logger.info("log1 info");
logger.warn("log1 warn");
logger.error("log1 error");
}
}
2.3 结果
输出到Ecliplse的Console界面和文件D:\log\result.log中,内容如下:
[2016-12-14 16:03:34] [INFO] log info
[2016-12-14 16:03:34] [WARN] log warn
[2016-12-14 16:03:34] [ERROR] log error
[2016-12-14 16:03:36] [INFO] log1 info
[2016-12-14 16:03:36] [WARN] log1 warn
[2016-12-14 16:03:36] [ERROR] log1 error
另外,由于配置了每天生成一个备份,系统时间切一天后日后,再运行,原先的result.log会变成result.log.2016-12-13.log,新的日志会重新放到新建的日志文件result.log
3 使用Properties文件配置并调用log
3.1 文件配置log4j.properties
log4j.rootLogger=INFO, toConsole, toFile
log4j.appender.file.encoding=UTF-8 log4j.appender.toConsole=org.apache.log4j.ConsoleAppender
log4j.appender.toConsole.Target=System.out
log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.toConsole.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n log4j.appender.toFile.file=D:\\log\\result.log
#Daily one log file
log4j.appender.toFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.toFile.Append=true
log4j.appender.toFile.Threshold=info
log4j.appender.toFile.layout=org.apache.log4j.PatternLayout
log4j.appender.toFile.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n
log4j.appender.toFile.DatePattern='.'yyyy-MM-dd'.log'
3.2 调用
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator; public class TestLog {
static Logger logger = Logger.getLogger(TestLog.class.getName()); public static void main(String[] args) {
PropertyConfigurator.configure( "D:\\Users\\...\\config\\log4j.properties" );
logger.info("log info");
logger.warn("log warn");
logger.error("log error"); try {
Thread.sleep(2000);
}
catch(Exception ex)
{} logger.info("log1 info");
logger.warn("log1 warn");
logger.error("log1 error");
}
}
3.3 结果
和上面一致
4 按输出级别的种类保存内容到不同目的地
从高到低:ERROR、WARN、INFO、DEBUG
- ERROR 为严重错误 主要是程序的错误
- WARN 为一般警告,比如session丢失
- INFO 为一般要显示的信息,比如登录登出
- DEBUG 为程序的调试信息
4.1 文件配置log4j.properties
log4j.rootLogger=INFO, toConsole
log4j.appender.file.encoding=UTF-8 log4j.appender.toConsole=org.apache.log4j.ConsoleAppender
log4j.appender.toConsole.Target=System.out
log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.toConsole.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n log4j.logger.myError=ERROR, toFile
log4j.appender.toFile.file=D:\\log\\Errors.log
#Daily one log file
log4j.appender.toFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.toFile.Append=true
log4j.appender.toFile.Threshold=info
log4j.appender.toFile.layout=org.apache.log4j.PatternLayout
log4j.appender.toFile.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n
log4j.appender.toFile.DatePattern='.'yyyy-MM-dd'.log'
4.2 调用
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator; public class TestLog {
static Logger logger = Logger.getLogger(TestLog.class.getName());
static Logger errorLogger=Logger.getLogger("myError"); public static void main(String[] args) {
PropertyConfigurator.configure( "D:\\Users\\...\\config\\log4j.properties" );
logger.info("log info");
logger.warn("log warn");
logger.error("log error"); errorLogger.info("myError info");
errorLogger.warn("myError warn");
errorLogger.error("myError error");
}
}
4.3 结果
Eclipse的Console界面
[2016-12-13 17:45:06] [INFO] log info
[2016-12-13 17:45:06] [WARN] log warn
[2016-12-13 17:45:06] [ERROR] log error
[2016-12-13 17:45:06] [ERROR] myError error
Errors.log
[2016-12-13 17:45:06] [ERROR] myError error
参考
[2] log4j.properties log4j.xml 路径问题
[4] log4j简单案例
//设置每天生成一个文件名后添加的名称,备份名称:年月日.log
Log4j常用配置及使用的更多相关文章
- log4j常用配置以及日志文件保存位置
log4j.rootLogger=INFO,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender ...
- (三)log4j常用配置
控制台(console) log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = ...
- 【转】logback 常用配置详解(序)logback 简介
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- commons-logging和Log4j 日志管理/log4j.properties配置详解
commons-logging和Log4j 日志管理 (zz) 什么要用日志(Log)? 这个……就不必说了吧. 为什么不用System.out.println()? 功能太弱:不易于控制.如果暂时不 ...
- logback常用配置详解及logback简介
logback 简介(一) Ceki Gülcü在Java日志领域世界知名.他创造了Log4J ,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行.随后他又着手实现SLF4J 这 ...
- java日志框架log4j详细配置及与slf4j联合使用教程
最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” <d ...
- Tomcat记录-tomcat常用配置详解和优化方法(转载)
常用配置详解 1 目录结构 /bin:脚本文件目录. /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载). /conf:存放配置文件,最重要的是serv ...
- [转]logback常用配置简介
logback是一套日志框架,由log4j的优化版,由同一个作者开发,在速度和性能上都超过其他日志框架,再结合slf4j,已成为当前最流行的日志框架. Logback最常用就是在classpath定义 ...
- log4j日志配置(按天/按日)
项目中尽管对log4j有基本的配置,例如按天生成日志文件以作区分,但如果系统日志文件过大,则就需要考虑以更小的单位切分或者其他切分方式.下面就总结一下log4j常用的配置参数以及切分日志的不同方式. ...
随机推荐
- vue 笔记二
vue制作weibo 交互 vue-> 1.0 vue-resource ajax php 服务器环境(node) this.$http.get()/post()/jsonp() this.$h ...
- webpack 编译ES6插件babel-loader
1.安装babel-loader 参考:http://babeljs.io/docs/setup/#installation 进入项目目录执行安装命名: npm install --save-dev ...
- ORA-01109:数据库未打开(解决)
SQL> startup mountORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它SQL> shutdown immediateORA-01109: 数据库未打开 ...
- 【实践】源代码分析工具Doxygen+Graphviz
拿到一个新项目或者一个开源框架,看源代码的方式不是先进行单步调试!最好的方式是先画出整个项目或者开源框架的类.协作.已经方法调用图,能够帮助你更快的理解框架或者项目的设计. 打包下载地址:http:/ ...
- 〖Linux〗打开qtcreater出现错误的解决方法
1. 更换了显卡驱动,发现打开qtcreater时出现了以下的错误: qtcreator: error : cannot open shared object file: No such file o ...
- System.out.print实现原理猜解
我们往往在main中直接调用System.out.print方法来打印,但是其实就这简单的一步里面有很多的玄机,因为main是static的,所以只能调用static的函数,那么print是stati ...
- git编译
Git 是一个自由.开源.高效的分布式版本控制系统(VCS),它是基于速度.高性能以及数据一致性而设计的,以支持从小规模到大体量的软件开发项目.Git 是一个可以让你追踪软件改动.版本回滚以及创建另外 ...
- fdisk -l解析
fdisk -l显示信息详解 [root@www.linuxidc.com ~]# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 hea ...
- MyEclipse上的第一个java web
简单解说怎样MyEclipse上开发一个web project 以及怎样部署的问题. 第一步: 创建一个web project File -> New -> Web Project 将出现 ...
- HDUOJ1060Leftmost Digit
Leftmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...