在开发中,我们经常需要对信息进行记录,以此来保证确认一些信息或者是以此来检查某一些运行过程中的数据变化。我们通常的做法是通过System.out.println(“信息”);来进行输出信息。但是显然让成品在控制台输出,是没有用的。我们经常通过hibernate和slf4j技术来完成日志记录操作的。
1. 什么是slf4j技术? SLF4J即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。用于整合其他日志系统。
2. 什么是log4j? 在企业开发中,经常使用log4j用于日志记录。它是具体的日志记录方案。可以在hibernate框架下和slf4j进行整合,进行日志记录。
3. log4j的安全级别 * fatal(致命的)、error(普通错误)、warn(警告)、info(信息)、debug(调试)、trace(堆栈信息) Logger.error(“错误信息”); * 通过配置文件的形式,显示错误信息. * 配置的级别是info
4. log4j的三个组件
<1>记录器(Loggers) * 格式:记录器 = 级别, 输出源1 , 输出源2 * log4j.rootLogger=info, stdout <2>输出源(Appenders) * log4j.appender.stdout=org.apache.log4j.ConsoleAppender :控制台进行输出. * log4j.appender.file=org.apache.log4j.FileAppender :向文件进行输出. <3>布局(Layouts) log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n5. 日志记录测试实例
//log4j的配置文件位于src下:log4j.properties ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.err log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### direct messages to file mylog.log ### log4j.appender.file=org.apache.log4j.FileAppender //注意File=后面的路径是你要向某个位置进行记录的路径。如果路径文件不存在就会自动创建 log4j.appender.file.File=c\:mylog.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### set log levels - for more verbose logging change 'info' to 'debug' ### //权限控制 log4j.rootLogger=off, stdout 下面是java测试代码 //测试类代码 public class Log4JTest { private Logger logger = Logger.getLogger(Log4JTest.class); @Test public void demo1(){ logger.fatal("致命错误"); logger.error("普通错误"); logger.warn("警告信息"); logger.info("普通信息"); logger.debug("调试信息"); logger.trace("堆栈信息"); } }