eclipse, Log4j配置(真心的详细~)
为什么80%的码农都做不了架构师?>>>
【1】从零开始
a). 新建Java Project>>新建package>>新建java类;
b). import jar包(一个就够),这里我用的是log4j-1.2.14.jar,
c). 新建log4j.properties,置于project根目录下;
log4j.rootLogger=info, ServerDailyRollingFile, stdout
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=C://logs/notify-subscription.log
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
log4j.appender.ServerDailyRollingFile.Append=truelog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
d). 在main()中,加载log4j:
PropertyConfigurator.configure("log4j.properties");
e). 写个小程序测试下,好了,我们看下效果:
【神马】找不到文件exception?
1). 用绝对路径,真心不推荐啊,太不优雅了;
2). 将log4j文件置于bin/目录下:
a). 代码中,PropertyConfigurator.configure("bin/log4j.properties");
b). 代码中,PropertyConfigurator.configure(ClassLoader.getSystemResource("log4j.properties"));
c). 注意,必须位于bin直接目录下,不可位于bin更深层的目录当中。可是这究竟是为神马捏?
可参考: http://blog.sina.com.cn/s/blog_3f4755c70100jco1.html
3) 必杀技:
private static void initLog4j() {
Properties prop = new Properties();
prop.setProperty("log4j.rootLogger", "DEBUG, CONSOLE");
prop.setProperty("log4j.appender.CONSOLE", "org.apache.log4j.ConsoleAppender");
prop.setProperty("log4j.appender.CONSOLE.layout", "org.apache.log4j.PatternLayout");
prop.setProperty("log4j.appender.CONSOLE.layout.ConversionPattern", "%d{HH:mm:ss,SSS} [%t] %-5p %C{1} : %m%n");
PropertyConfigurator.configure(prop);
}
【2】log4j 格式详解
log4j.rootLogger=日志级别,appender1, appender2, ….
日志级别:ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF,不区分大小写
注意,需在控制台输入,只需将其中一个appender定义为stdout即可
注意,rootLogger默认是对整个工程生效
注意,如果只想对某些包操作,那么:log4j.logger.com.hutu=info, stdout,表示该日志对package com.hutu生效
注意,这样做可以区分dev/线上,也可以减小性能影响:if(log.isDebugEnabled()){log.debug();}
log4j.appender.appender1=org.apache.log4j.日志输出到哪儿
ConsoleAppender(控制台)
FileAppender(文件)
DailyRollingFileAppender(每天产生一个日志文件)
RollingFileAppender(文件大小到达指定尺寸时产生一个新的文件)
WriteAppender(将日志信息以流格式发送到任意指定的地方)
JDBCAppender(将日志信息保存到数据库中)
log4j.appender.appender1.File=文件目录及文件
${user.home}/logs/...
log4j.appender.appender1.MaxFileSize=最大文件大小
log4j.appender.appender1.MaxBackupIndex=备份文件个数
其中,appender1是在第一行定义过的;
文件目录及文件,例如,/home/admin/logs/hutudan.log
最大文件大小,例如,100KB
备份文件个数,例如,1
log4j.appender.ServerDailyRollingFile.DatePattern=日志后缀格式
例如,'.'yyyy-MM-dd
log4j.appender.appender1.layout=org.apache.log4j.日志布局格式
HTMLLayout(以HTML表格形式布局)
SimpleLayout(包含日志信息的级别和信息字符串)
TTCCLayout(包含日志产生的时间,执行绪,类别等信息)
PatternLayout(可以灵活的指定布局格式,常用)
log4j.appender.appender1.layout.ConversionPattern=日志输出格式
例如,%d - %m%n或%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
可参考:http://blog.sina.com.cn/s/blog_4e4dd5570100qowy.html
log4j.appender.ServerDailyRollingFile.Append=true
例如,不解释,追加往后写便是
总结一下:
Logger类:完成日志记录,设置日志信息级别
Appender类:决定日志去向,终端、DB、硬盘
Layout类:决定日志输出的样式,例如包含当前线程、行号、时间
转载于:https://my.oschina.net/airship/blog/475452
eclipse, Log4j配置(真心的详细~)相关推荐
- 【转】eclipse, Log4j配置(真心的详细~)
[1]从零开始 a). 新建Java Project>>新建package>>新建java类: b). import jar包(一个就够),这里我用的是log4j-1.2.14 ...
- eclipse java jdk_使用Eclipse配置JDK的详细操作
一些新手朋友可能不知道使用Eclipse配置JDK的详细操作,今天小编就讲解使用Eclipse配置JDK的操作方法哦,希望能够帮助到大家呢. 使用Eclipse配置JDK的详细操作 (window - ...
- springmvc+log4j操作日志记录,详细配置
没有接触过的,先了解一下:log4j教程 部分内容来:log4j教程 感谢! 需要导入包: log包:log4j-12.17.jar 第一步:web.xml配置 <!-- log4j配置,文件路 ...
- 在eclipse中配置Tomcat详细配置
首先我们需要 配置java环境安装eclipse,这在之前已经配置过,不再赘叙. jdk安装配置:https://blog.csdn.net/eggplant_/article/details/828 ...
- Eclipse NDK 配置,无需安装Cygwin
Eclipse NDK 配置,无需安装Cygwin Eclipse NDK 配置,不用安装Cygwin 文章转自http://www.cnblogs.com/chenjiajin/archive/20 ...
- maven2 + tomcat6 + eclipse集成配置
转载:http://wenku.baidu.com/view/d64147c676eeaeaad1f330d4.html?re=view /* maven2 + tomcat6 + eclipse集成 ...
- java log4j 配置_Java:log4j与log4j.properties的配置说明
[来源:Java |作者:Java |时间:2007-7-20 |去论坛]--在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包- ...
- Log4j配置学习文档之三 参考
log4j配置详解(非常详细) 切分 Tomcat 的 catalina.out 文件,解决日志文件过大的问题 tomcat下catalina.out日志文件分割 Log4j的扩展-支持设置最大日志数 ...
- 在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)
前言 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一 在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中? 这里仅 ...
最新文章
- NSOperationQueue
- Miniconda3的环境配置
- The constructor BASE64Decoder() is not accessible due to restriction on required library
- 家用电脑配置_家用电脑无需太高配置,不要听电脑店瞎忽悠,2500元机子够用了!...
- 元素属性的添加删除(原生js)
- Spring的Aop授权不起作用,例如Shiro的注解(@RequiresRoles,@RequiresPermissions)
- 信息资源管理——总结
- HackerRank and MiniMax
- 用crontab命令实现每天定时的病毒扫描
- 文字和表单(checkbox/radio)元素垂直对齐方法,兼容Firefox和IE。
- java做航空购票系统_基于JAVA的航空订票系统
- 腾讯云人脸识别 活体检测 人员库管理
- Stroke:利用人类遗传学理解缺血性卒中预后的机制
- 屏幕录制专家linux版,Linux平台好用的十款屏幕录制工具
- html制作雪花飘落海报,HTML5 canvas实现雪花飘落特效
- 苹果自带的APP下载分析统计工具
- 高德地图哪个语音包最好_贪玩蓝月语音包 高德地图语音包哪个好
- python爬虫 爬取小姐姐图片
- JVM--Jit学习
- 程序员应该学习如何学习
热门文章
- Spring Boot 监听 Redis Key 失效事件实现定时任务
- 哈哈哈,这个教人写烂代码的项目在 GitHub 上火了...
- Lombok 使用详解,简化 Java 编程
- 图解Transformer(完整版)!
- 研究生走私实验材料被海关查获!为了毕业,真的太难了...
- 谁说GPT只擅长生成?清华研究力证:GPT语言理解能力不输BERT
- 拼手速抢红包!送大家现金红包!
- 既然很多工作 35 岁就会被裁员,那么深耕一个领域的意义是什么?
- 3月9日起陆续开学!快来看看有没有你所在的省份
- gossip协议与memberlist实现