网站首页 > java教程 正文
01
使用common-logging和log4j
准备开一大项目的话,日志系统必不可少。Apache为了让众多的日志工具有一个相同操作方式,实现了一个通用日志工具包:commons-logging。而Log4j基本上是Java平台上最好的日志组件了,测试框架开发中也会用到。
使用ommons-logging的Log接口,并由commons-logging在运行时决定使用哪种日志架构(如Log4j)。现在,Apache通用日志工具commons-logging和Log4j已经成为Java日志的标准工具。
02
日志级别
log4j主要有如下的信息级别:
- fatal:非常严重的错误,导致系统中止。期望这类信息能立即显示在状态控制台上。
- error:其它运行期错误或不是预期的条件。期望这类信息能立即显示在状态控制台上。
- warn:使用了不赞成使用的API、非常拙劣使用API, ‘几乎就是’错误, 其它运行时不合需要和不合预期的状态但还没必要称为 “错误”。期望这类信息能立即显示在状态控制台上。
- info:运行时产生的有意义的事件。期望这类信息能立即显示在状态控制台上。
- debug:系统流程中的细节信息。期望这类信息仅被写入log文件中。
- trace:更加细节的信息。期望这类信息仅被写入log文件中。
通常情况下,我们希望将info级别以上的日志信息输出到控制台,而debug级别以上的信息写入到log文件中,而error信息写入到一个单独的文件中去,下面我们的实例将会实现这样的功能。
03
文件配置
Maven/Jar包
需要使用commons-logging.jar和log4j.jar包。如果使用Maven,则需要在pom中添加:
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
配置common-logging.properties文件
只需要一行即可,放在src/resources下
org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger
配置log4j.properties文件
只需要一行即可,放在src/resources下
### set log levels ###
log4j.rootLogger = debug , stdout , D , E
### 输出到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.out## 输出INFO级别以上的日志log4j.appender.stdout.Threshold = INFOlog4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
### 输出到日志文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = D:/logs/log.log
log4j.appender.D.Append = true
## 输出DEBUG级别以上的日志
log4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 保存异常信息到单独文件 ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名log4j.appender.E.File = D:/logs/error.log
log4j.appender.E.Append = true
## 只输出ERROR级别以上的日志!!!log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
测试
打印日志
log4j.properties中的日志输出到 D:/logs/log.log,到D盘看日志文件:
- 上一篇: Java案例-打印九宫格(java九宫格拼图)
- 下一篇: java服务器日志打印规范 1.异常处理:
猜你喜欢
- 2024-10-31 阿里经典面试-java三线程轮流打印A、B、C的ReentrantLock实现
- 2024-10-31 学习廖雪峰的JAVA教程---反射(名叫Class的类、动态加载)
- 2024-10-31 Java案例-求和与打印九九乘法表(用java打印九九乘法口诀)
- 2024-10-31 Java面试题:怎么让两个线程交替打印1和2(生产者消费者问题)
- 2024-10-31 第九章:Java输入输出流和文件操作
- 2024-10-31 Java 自定义注解+AOP 实现日志打印
- 2024-10-31 Java基础学习:java输出整数类型(java分别输出整数和小数)
- 2024-10-31 不懂这些,你敢说自己知道Java标准输入输出流?
- 2024-10-31 Java高阶面试:如何实现三个线程交替循环打印
- 2024-10-31 字节流的输入输出,JAVA基础知识笔记
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)