guokehua(@yahoo.com.cn oy Java 1010 35LOG4H 2008-3-10
2008-3-10 1 oy Java! J guokehua@yahoo.com.cn 35LOG4j 35LOG4j
guokehua(@yahoo.com.cn 了y问题的提出 oy Java! log for Java I log4j httpa/lwww.apacheorg 1010 在项目运行的过程之中,我们希望周期性地将 项目运行过程中的一些状况纪录在日志文件或 者打印在控制台,这些状况包括: 用户操作的错误信息3保存到日志文件 1:程序运行的过程 ·代码调试时的打印 传统方法怎么办?读写文件? 请看一个例子 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 2 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 问题的提出 • log for Java log for Java log4j http://www.apache.org http://www.apache.org • 在项目运行的过程之中,我们希望周期性地将 在项目运行的过程之中,我们希望周期性地将 项目运行过程中的一些状况纪录在日志文件或 项目运行过程中的一些状况纪录在日志文件或 者打印在控制台,这些状况包括: 者打印在控制台,这些状况包括: • 用户操作的错误信息 用户操作的错误信息,保存到日志文件 保存到日志文件 • 程序运行的过程 程序运行的过程 • 代码调试时的打印 代码调试时的打印 • 传统方法怎么办?读写文件? 传统方法怎么办?读写文件? • 请看一个例子
guokehua(@yahoo.com.cn 了y一个例子 一个 JavaBean里面有一些操作,但有 可能出现异常,要求:如果出现异常 1010 将保存在日志文件,供日后用户参考 建立工程,编写程序。用传统的代码 大项目中不可取 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 3 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 一个例子 • 一个JavaBean JavaBean里面有一些操作,但有 里面有一些操作,但有 可能出现异常,要求:如果出现异常, 可能出现异常,要求:如果出现异常, 将保存在日志文件,供日后用户参考 将保存在日志文件,供日后用户参考 • 建立工程,编写程序。用传统的代码 建立工程,编写程序。用传统的代码 • 大项目中不可取 大项目中不可取
guokehua(@yahoo.com.cn Jor avlog4j 我们给出一个好的方案:log4 log for java 1010 ·它能够将信息送到:控制台,文件, GU组件等 还能控制每条信息的输出格式 1·还能将信息分类,定义信息级别,细致 地控制日志的输入输出 008-3-10 郭克华J2E框架实战教学视频
2008-3-10 4 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 log4j • 我们给出一个好的方案: 我们给出一个好的方案:log4j • log for java log for java • 它能够将信息送到:控制台,文件, 它能够将信息送到:控制台,文件, GUI组件等 • 还能控制每条信息的输出格式 还能控制每条信息的输出格式 • 还能将信息分类,定义信息级别,细致 还能将信息分类,定义信息级别,细致 地控制日志的输入输出 地控制日志的输入输出
guokehua(@yahoo.com.cn 了y怎样做? 首先在项目中导入og4的包 ·然后在 classpath下面编写配置文件 1010 最后在程序里面导入 org.apachelog4. Logger 用L。 gger. get°gger实例化 Logger, 1然后调用对象的函数 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 5 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 怎样做? • 首先在项目中导入 首先在项目中导入log4j的包 • 然后在classpath classpath下面编写配置文件 下面编写配置文件 • 最后在程序里面导入 最后在程序里面导入 org.apache.log4j.Logger org.apache.log4j.Logger • 用Logger. Logger.getLogger getLogger实例化Logger, 然后调用对象的函数 然后调用对象的函数
guokehua(@yahoo.com.cn 了y配置文件? 配置文件要放在EB- NF/classes( Eclipse下可以放在src 下面)下面或者应用程序的项目根目录下面 ·名称为:log4j-pr。 perties 1010 几个重要配置: log刂.root。gger=级别输出源1,输出源2. 级别: DEBUe<INFo<WARN< ERRORSFATAL 规格:如果一条日志信息的级别大于等于配置文件的级别,就记录。 常见输出源: CONSOLE,FLE 例子:log4 j- root Logger=WARN, CONSOLE FILE 当用户调用 logger, debug(AAA)时信息不会打印在控制台和文 件 当用户调用 logger. Error(AAA)时信息会打印在控制台和文件 接下来还要对各种输出源的配置 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 6 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 配置文件? • 配置文件要放在/WEB-INF/classes(Eclipse INF/classes(Eclipse下可以放在src 下面)下面或者应用程序的项目根目录下面 • 名称为:log4j.properties log4j.properties • 几个重要配置: • log4j.rootLogger rootLogger=级别,输出源1,输出源2…… – – 级别:DEBUG<INFO<WARN<ERROR<FATAL DEBUG<INFO<WARN<ERROR<FATAL – – 规格:如果一条日志信息的级别大于等于配置文件的级别,就记录。 – – 常见输出源:CONSOLE,FILE CONSOLE,FILE – – 例子:log4j.rootLogger rootLogger=WARN, CONSOLE,FILE CONSOLE,FILE – – 当用户调用logger.debug( logger.debug(“AAA”)时,信息不会打印在控制台和文 件 – – 当用户调用logger. Error( logger. Error(“AAA”)时,信息会打印在控制台和文件 • 接下来还要对各种输出源的配置
guokehua(@yahoo.com.cn oy Java! 对各种输出源的配置 log4 Hi. appender输出源名称=类名 CONSOLE对应: org.apache log4 i. ConsoleAppender FLE对应: org.apachelog4 FileAppender 1010 log4 appender输出源名称 Target/File≡目标名 CONSOLE对应: System. out FLE对应:日志文件名 log4 appender输出源名称 Layout= Layout类名 比如: org.apache log4j。 Simple Layout ·特殊:log4J- appender FILE. Append= true/false 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 7 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 对各种输出源的配置 对各种输出源的配置 • log4j.appender appender.输出源名称=类名 – – CONSOLE CONSOLE对应:org.apache.log4j. org.apache.log4j.ConsoleAppender ConsoleAppender – – FILE对应: org.apache.log4j. org.apache.log4j.FileAppender FileAppender • log4j.appender appender.输出源名称.Target/File= Target/File=目标名 – – CONSOLE CONSOLE对应:System.out System.out – – FILE对应: 日志文件名 • log4j.appender appender.输出源名称.Layout=Layout Layout=Layout类名 – – 比如:org.apache.log4j. org.apache.log4j. SimpleLayout SimpleLayout • 特殊: log4j.appender appender.FILE.Append=true/false Append=true/false
guokehua(@yahoo.com.cn oy Java! 个例子 10g4]. rootLogger=WARN, CONSOLE, FILE 01010 10g4j appender CONSOLE=org. apache log4]. ConsoleAppender log4]. appender FILE=org. apache log4]. FileAppender 1010 10g4] appender CONSOLE. Target=System.out log4]. appender FIlE File=file. log log4]. appender CONSOLE. layout=org. apache. log4].simpleLayout 10g4] appender FILE.layout=org. apachelog4]. SimpleLayout 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 8 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 一个例子 log4j.rootLogger rootLogger=WARN,CONSOLE,FILE WARN,CONSOLE,FILE log4j.appender appender.CONSOLE= .CONSOLE=org.apache.log4j. org.apache.log4j.ConsoleAppender ConsoleAppender log4j.appender appender.FILE=org.apache.log4j. org.apache.log4j.FileAppender FileAppender log4j.appender appender.CONSOLE.Target= .CONSOLE.Target=System.out System.out log4j.appender appender.FILE.File= .FILE.File=file.log file.log log4j.appender appender.CONSOLE.layout= .CONSOLE.layout=org.apache.log4j. org.apache.log4j.SimpleLayout SimpleLayout log4j.appender appender.FILE.layout= .FILE.layout=org.apache.log4j. org.apache.log4j.SimpleLayout SimpleLayout
guokehua(@yahoo.com.cn oy Java! 怎样将内容写入日志? Logger logger= Logger. getlogger(类名 logger debug(obJ)i logger. info (oBJ)i 1 agger.warn(oBJ)氵 loggererror(oBj)i logger. fatal(OBJ)i 如果一条日志信息的级别大于等于配置文件的级别,就记录 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 9 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 怎样将内容写入日志? 怎样将内容写入日志? Logger logger = Logger. = Logger.getLogger getLogger(“类名”); logger.debug(OBJ .debug(OBJ); logger.info(OBJ); .info(OBJ); logger.warn(OBJ); .warn(OBJ); logger.error(OBJ); .error(OBJ); logger.fatal(OBJ); .fatal(OBJ); 如果一条日志信息的级别大于等于配置文件的级别,就记录
guokehua(@yahoo.com.cn oy Java! 日志布局 常见的布局: I HTMLLayout:以理M表格显示 simplelayout:以最简单的形式表示 1010 PatternLayout:自定义形式表示 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 10 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 日志布局 常见的布局: HTMLLayout HTMLLayout:以HTML表格显示 SimpleLayout SimpleLayout:以最简单的形式表示 PatternLayout PatternLayout:自定义形式表示