Log4j日志详解

1.log4j的作用

log4j用于系统的日志记录,系统日志统一交给log4j来管理,也减少手动输出日志的更多系统消耗

2.log4j日志配置文件的说明

2.1 日志级别定义

log4j.rootLogger=[日志级别定义],eg:log4j.rootLogger=INFO

说明:此参数为日志输出级别的定义,常用的选项有:DEBUG,INFO,WARN,ERROR。

一般设置为:log4j.rootLogger=INFO,ERROR

2.2 日志输出分类

通常,我们不希望所有INFO级别日志全都打到同一个日志文件中,会把不同路径或者不同类中的日志进行分类管理,打到不同的日志文件中。

log4j.logger.xxx=[日志级别],[日志打入的文件定义]

eg:log4j.logger.com.cc.web.controller=INFO,CONTROLLER

说明:红色加粗的com.cc.web.controller即表示该路径下的所有类的日志都是INFO级别,并且日志输出到定义的CONTROLLER这个日志定义中,在2.3中,会讲这个CONTROLLER是怎么定义和使用的。

在这里,我们就可以对当前系统的日志做一些分类记录

例如:

log4j.logger.com.cc.web.controller=INFO,CONTROLLER

log4j.logger.com.cc.web.service=INFO,SERVICE

log4j.logger.org.springframework=INFO

log4j.logger.java.sql.PreparedStatement=INFO,DAO

2.3日志输出定义

日志输出定义是定义某类日志的输出的文件路径、格式、编码等

用例子说明:

红色加粗的即为当前定义的名为CONTROOLER的日志配置,2.2中com.cc.web.controller下的所有日志都会输出到文件controller.log中。

log4j.appender.CONTROLLER=org.apache.log4j.DailyRollingFileAppender#此处定义为每天产生一个日志,还有其他选项,比如org.apache.log4j.RollingFileAppender,表示文件达到某个大小的时候,产生一个新的日志文件

log4j.appender.CONTROLLER.File=/opt/log/cc/controller.log#定义文件的输出路径

log4j.appender.CONTROLLER.DatePattern='.'yyyy-MM-dd#每天产生新文件后,旧的文件后追加时间,也就是说日志文件夹中,会有一组controller.log文件,当天的文件名就叫controller.log,以前的所有日志文件都被命名为controller.log.yyyy-MM-dd的形式保存起来

log4j.appender.CONTROLLER.layout=org.apache.log4j.PatternLayout#表示灵活的指定布局

log4j.appender.CONTROLLER.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t]-[%l]-[%p] %m%n#此处为PatternLayout的显示设置,具体含义暂时不阐述,后面在补充,想要了解,可以搜一下其他博文

log4j.appender.CONTROLLER.encoding=UTF-8#编码格式设置


以上,基本的日志配置就没得了。

做这个日志记录,是因为自己也有相应的困惑,log4j.properties中的内容根本看不懂。。。哈哈

如有疑问,希望留言交流或者加群:583522159

需求说明 (1)使用UserDaoImp1类的方法查找用户,并用User类的getUserInfo()方法输出用户信息 (2)使用一个不存在的用户名查找用户,使用try-catch对抛出的异常进行处理 实现思路及关键代码 (1)在测试类中调用UserDaoImp类的addUser(User user)方法,添加用户,然后用findUser(String uName)方法查找并输出用户信息 (2)在测试类中调用UserDaoImp1类的findUser(String uName)方法,使用不存在的用户名查找用户,并试图输出用户信息 (3)对抛出的异常使用try-catch进行异常处理。 实践二:使用try-catch-finally进行异常处理 需求说明 (1)对实践1的异常使用try-catch-finally进行异常处理 (2)在finally块输出是否抛出了异常 实现思路及关键代码 (1)在任务一中的代码上增加finally块 (2)为了判断在finally块输出是否抛出异常,可以设置一个变量,在catch块里修改这个变量 实践三:使用throw和throws 需求说明 修改UserDaoImpl类的updateUser(User user)方法,要求如果用户id被修改,则: (1)不执行更新 (2)抛出一个Exception异常 (3)异常消息是“用户id不能修改” 实现思路及关键代码 (1)修改UserDao类的updateUser(User user)方法,声明抛出异常 (2)修改UserDaoImpl类的updateUser(User user)方法,加入判断语句,并抛出异常 (3)在测试类中调用,并进行异常处理 实践四:使用log4j 需求说明 (1)使用log4j输出日志信息 (2)查看输出日志信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值