1.异常信息要同时在控制台上输出和文件中保存?如何处理?
使用log4j解决这个问题,log4j是Apatch提供开源的日志包,log4j可以控制日志信息的输出目的地,也可以控制每一条日志信息的输出格式和日志信息的优先级;通过定义每一条日志信息的级别,能够更加细致的控制日志的生成过程。
A.优先级从高到低:fatal->error->warn->info->debug
B.输出目的地:log4j允许日志请求被输出到多个输出源,一个输出源被称做一个Appender
C.输出格式:PatternLayout灵活地指定布局模式, 配置ConversionPattern属性;
HTMLLayout以HTML表格形式布局。
D. 优点:
可以决定log信息的目的地;
可以定义每一条日志信息的级别;
有利于系统的规划。
2. 使用log4j记录日志
1.导入log4j jar包
右键想导入的位置-build path-configure build path-add external JARS-选择log4j jar放置位置-打开即可
或者直接新建lib,复制粘贴进来
2.建立log4j配置文件
新建一个file,命名log4j.properties,注意:log4j.propertis放在工程根目录
配置信息如下所示,按需修改
###将日志信息输出到控制台###
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}%m%l%p%r%n
###把日志信息输出到文件中###
log4j.appender.file=org.apache.log4j.FileAppender(输出至文件)
log4j.appender.file.File=sysInfo.log(日志文件的名称)
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%m%l%p%r%n(日志信息的格式)
###设置日志的优先级别###
log4j.rootLogger=error,stdout,file
3. 程序中记录日志
1. 创建日志记录器,负责记录日志,一般就是类名:
Logger l = Logger.getLogger("Log4j");
2. 使用默认配置:
BasicConfigurator.configure();
log4j.properties路径默认从项目根路径开始:
PropertyConfigurator.configure("log4j.properties");
3.使用日志管理器进行日志记录:例如
l.debug("我是debug信息");
l.info("我是info信息");
l.warn("我是警告信息");
l.error("错误信息");
l.fatal("致命信息");