`

非web工程下添加log4j

阅读更多

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). 写个小程序测试下,好了,我们看下效果:

    image

     【神马】找不到文件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类:决定日志输出的样式,例如包含当前线程、行号、时间

转自:http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html

分享到:
评论

相关推荐

    基于框架的Web开发-mybatisspring.doc

    8.1 spring+mybatis 改造springTransaction工程...Log4j的配置文件还是放在src文件夹下在resources文件夹下创建mybaits-config.xml文件,可以从mybatis工程中拷贝过来修改。在resources文件夹下创建mappers文件夹,

    微信开发框架wechat4j

    &gt; * log4j.jar 1.2以上 &gt; * fastjson-1.2.0.jar &gt; * sword-lang-1.2 (https://github.com/sword-org/sword-lang/releases) &gt; * fluent-hc-4.3.6.jar(httpclient依赖) &gt; * httpclient-4.3.6.jar &gt; * ...

    XP开发模式:第一个最简单的Web Servlet应用演示例子

    为完成这个例子,需要把log4j.jar文档拷贝到Tomcat 6.0的lib目录下。同时,在使用Ant打包时,需要在打成.war档之后,手动调整jsp文档的位置,也就是需要向压缩档添加 jsp目录,该目录在压缩档与WEB-INF目录同级,...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log4j 6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log4j 6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log4j 6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log4j 6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用...

    JSP基于SSM学校教务选课成绩管理系统+源代码+文档说明+数据库.zip

    使用技术:IOC容器:Spring,Web框架:SpringMVC,ORM框架:Mybatis,数据源:C3P0,日志:log4j,前端框架:Bootstrap,Apache Shiro身份验证 系统一共3个身份:管理员,老师和学生!管理员登录网站后台可以添加和维护课程信息...

    t淘淘商城项目 商城项目 视频和源码教程 详细

    &lt;artifactId&gt;slf4j-log4j12 ${slf4j.version} &lt;!-- Mybatis --&gt; &lt;groupId&gt;org.mybatis &lt;artifactId&gt;mybatis ${mybatis.version} &lt;groupId&gt;org.mybatis &lt;artifactId&gt;mybatis-spring ${...

    ant1.9资源

    同时在antstudy工程的根目录下建立build.xml文件,在该文件中编译src目录下的java文件,并将编译后的class文件放入build/classes目录中,在编译前,需清除classes目录,该文件的内容如下: ...

    springboot参考指南

    使用YAML或JSON配置Log4j2 vi. 67. 数据访问 i. 67.1. 配置一个数据源 ii. 67.2. 配置两个数据源 iii. 67.3. 使用Spring Data仓库 iv. 67.4. 从Spring配置分离@Entity定义 v. 67.5. 配置JPA属性 vi. 67.6. 使用...

    网上商城需求报告

    log4j:日志工具,用于输出日志信息.主要在业务层和数据访问层使用 junit:单体测试工具,用于测试业务或者数据访问方法 -----------项目开发流程------------ UML模型图:IBM Rose,Microsoft Visio E-R模型图:...

    dangdang和smartstruts2.rar

    log4j:日志工具,用于输出日志信息.主要在业务层和数据访问层使用 junit:单体测试工具,用于测试业务或者数据访问方法 -----------项目开发流程------------ UML模型图:IBM Rose,Microsoft Visio E-R模型图:...

    计算机应用技术(实用手册)

    此项目允许您去选择 [ENABLED],以让您在DOS环境下可以使用USB键盘,或是选择 [OS] 以在OS环境下使用。在默认情况下是关闭的即:[DISABLED],只有打开在DOS下才可以用。 USB Mouse Support Via: 此项目允许您去...

    网管教程 从入门到精通软件篇.txt

     下例将在硬盘上添加一个 20 MB 的分区:  diskpart /add Device HardDisk0 20  Fixboot  向系统分区写入新的分区引导扇区。只有在使用故障恢复控制台时,才能使用 fixboot 命令。  fixboot [drive]  ...

    新版Android开发教程.rar

    � 由于是源代码开放的产品,对非主导厂商而言,可以避开与主导厂商在核心技术上面的差距,开发出 更 具竞争力和差异化的产品。 对运营商的影响 � 丰富的数据业务,将导致数据流量的显著增加 。 � 手机来源增加,...

Global site tag (gtag.js) - Google Analytics