为什么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=true

log4j.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=日志输出格式

  1. 例如,%d - %m%n或%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n

  2. %c 输出日志信息所属的类的全名

  3. %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28

  4. %f 输出日志信息所属的类的类名

  5. %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行

  6. %m 输出代码中指定的信息,如log(message)中的message

  7. %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”

  8. %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推

  9. %r 输出自应用启动到输出该日志信息所耗费的毫秒数

  10. %t 输出产生该日志事件的线程名

  11. 可参考: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配置(真心的详细~)相关推荐

  1. 【转】eclipse, Log4j配置(真心的详细~)

    [1]从零开始 a). 新建Java Project>>新建package>>新建java类: b). import jar包(一个就够),这里我用的是log4j-1.2.14 ...

  2. eclipse java jdk_使用Eclipse配置JDK的详细操作

    一些新手朋友可能不知道使用Eclipse配置JDK的详细操作,今天小编就讲解使用Eclipse配置JDK的操作方法哦,希望能够帮助到大家呢. 使用Eclipse配置JDK的详细操作 (window - ...

  3. springmvc+log4j操作日志记录,详细配置

    没有接触过的,先了解一下:log4j教程 部分内容来:log4j教程 感谢! 需要导入包: log包:log4j-12.17.jar 第一步:web.xml配置 <!-- log4j配置,文件路 ...

  4. 在eclipse中配置Tomcat详细配置

    首先我们需要 配置java环境安装eclipse,这在之前已经配置过,不再赘叙. jdk安装配置:https://blog.csdn.net/eggplant_/article/details/828 ...

  5. Eclipse NDK 配置,无需安装Cygwin

    Eclipse NDK 配置,无需安装Cygwin Eclipse NDK 配置,不用安装Cygwin 文章转自http://www.cnblogs.com/chenjiajin/archive/20 ...

  6. maven2 + tomcat6 + eclipse集成配置

    转载:http://wenku.baidu.com/view/d64147c676eeaeaad1f330d4.html?re=view /* maven2 + tomcat6 + eclipse集成 ...

  7. java log4j 配置_Java:log4j与log4j.properties的配置说明

    [来源:Java |作者:Java |时间:2007-7-20 |去论坛]--在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包- ...

  8. Log4j配置学习文档之三 参考

    log4j配置详解(非常详细) 切分 Tomcat 的 catalina.out 文件,解决日志文件过大的问题 tomcat下catalina.out日志文件分割 Log4j的扩展-支持设置最大日志数 ...

  9. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)

    前言 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一 在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中? 这里仅 ...

最新文章

  1. NSOperationQueue
  2. Miniconda3的环境配置
  3. The constructor BASE64Decoder() is not accessible due to restriction on required library
  4. 家用电脑配置_家用电脑无需太高配置,不要听电脑店瞎忽悠,2500元机子够用了!...
  5. 元素属性的添加删除(原生js)
  6. Spring的Aop授权不起作用,例如Shiro的注解(@RequiresRoles,@RequiresPermissions)
  7. 信息资源管理——总结
  8. HackerRank and MiniMax
  9. 用crontab命令实现每天定时的病毒扫描
  10. 文字和表单(checkbox/radio)元素垂直对齐方法,兼容Firefox和IE。
  11. java做航空购票系统_基于JAVA的航空订票系统
  12. 腾讯云人脸识别 活体检测 人员库管理
  13. Stroke:利用人类遗传学理解缺血性卒中预后的机制
  14. 屏幕录制专家linux版,Linux平台好用的十款屏幕录制工具
  15. html制作雪花飘落海报,HTML5 canvas实现雪花飘落特效
  16. 苹果自带的APP下载分析统计工具
  17. 高德地图哪个语音包最好_贪玩蓝月语音包 高德地图语音包哪个好
  18. python爬虫 爬取小姐姐图片
  19. JVM--Jit学习
  20. 程序员应该学习如何学习

热门文章

  1. Spring Boot 监听 Redis Key 失效事件实现定时任务
  2. 哈哈哈,这个教人写烂代码的项目在 GitHub 上火了...
  3. Lombok 使用详解,简化 Java 编程
  4. 图解Transformer(完整版)!
  5. 研究生走私实验材料被海关查获!为了毕业,真的太难了...
  6. 谁说GPT只擅长生成?清华研究力证:GPT语言理解能力不输BERT
  7. 拼手速抢红包!送大家现金红包!
  8. 既然很多工作 35 岁就会被裁员,那么深耕一个领域的意义是什么?
  9. 3月9日起陆续开学!快来看看有没有你所在的省份
  10. gossip协议与memberlist实现