Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天

Log4j概述

1 什么是Log4j
Log4j 是Apache为Java提供的日志管理工具。为了你快速理解Log4j的作用,我们用下面的代码说明Log4j的作用。

我们为了调试程序,总是需要在程序使用System.out.println()来输出一些信息。例如下面的代码:
// 获取UserService
UserService userService = UserServiceFactory.getUserService();
if(userService == null) {
System.out.println(“错误:userService没有获取到!”);
return;
}

// 获取要查询的User对象id
String uid = request.getParameter(“uid”);
int id;
try {
id = Integer.parseInt(uid);
} catch(NumberFormatException e) {
System.out.println(“错误:无法将uid转换成int类型!”);
throw e;
}
// 查询User
User user = userService.load(id);

System.out.println(“信息:已查询到User对象”);

user.setPassword(“zhangSan”);
System.out.println(“信息:修改user的密码”);

userService.save(user);
System.out.println(“信息:保存user信息”);

上面例子中所有的输出语句都是用来调试程序的,相信你的代码中也经常会出现这样的调试代码吧?这些调试代码必须在项目完成后删除。你想一想,一行一行的删除会不会忘记几行没有删除呢?
使用Log4j来打印这些测试代码,然后通过配置文件就能统一管理这些日志信息了!我们可以在配置文件中关闭所有日志,也可以在配置文件中打开所有日志,也可以打开某个级别的日志。甚至还可以管理日志出现的格式(是否加上日期和时间),以及日志输出的目标(是否为控制台,是否为文件)。

2 Log4j核心概念
Log4j中有三大组件:日志器(Logger)、日志输出目标(Appender)、格式化器(Layout)
Logger:用来输出日志消息的类,它可以输出不同级别的消息,例如错误消息、警告消息等;
Appender;通常我们希望日志输出到文件中,以及控制台,也可能希望日志输出数据库,该类就表示一个输出的目标;
Layout:对输出的消息进行格式化,例如在消息中添加日期,以及级别等。

3 Hello Log4j

public class Demo {
static Logger log = Logger.getLogger(Demo.class.getName());[创建日志器,日志器的名称为当前类的类名]
static {
Appender appender = new ConsoleAppender(new SimpleLayout());[创建发送器,使用简单格式化器]
BasicConfigurator.configure(appender);[加载这个发送器]
}
@Test
public void fun() {
log.info(“hello log4j!”)[输出info消息];
}
}

Logger

1 日志级别
在Log4j中日志消息分为五个级别,级别由高到低排列如下:
FATAL:重大错误,例如系统崩溃;
ERROR:错误,例如某模块瘫痪;
WARN:警告,程序的隐患,如果不处理,将来可能就是错误;
INFO:信息,可以用来查看程序执行的流程;
DEBUG:调试,用来调试程序的bug。

我们可以使用日志器输出这五种不同的日志,然后通过设置日志器的级别来控制输出的结果。来看下面的代码:
@Test
public void fun() {
log.setLevel(Level.ERROR)[设置日志级别为ERROR];
log.debug(“hello log4j!”);
log.info(“hello log4j!”);
log.warn(“hello log4j!”);
log.error(“hello log4j!”);
log.fatal(“hello log4j!”);
[输出成功!] }

上面代码中,只有error()和fatal() 两个方法的输出会完成,其他级别的输出都不会完成。因为设置日志器的级别为Level.ERROR后,只有高于ERROR级别的日志才能输出。

2 日志器名称
  在创建日志器时,需要给日志器指定一个名称:Logger log = Logger.getLogger(“hello”);
日志器的名称不只是一个名称而已,日志器的名称说明了日志器之间的父子关系。子日志器会继承父日志器的Appender和Level。
日志器的父子关系是通过日志器的名称来决定的,例如名称为cn.itcast的日志器是cn.itcast.logger的日志器的爸爸。cn.itcast.logger会继承cn.itcast的Appender以及Level。

@Test
public void fun() {
Logger log = Logger.getLogger(“cn.itcast”);
Appender appender = new ConsoleAppender(new SimpleLayout());
BasicConfigurator.configure(appender);
log.setLevel(Level.ERROR);
[创建名称为cn.itcast的日志器]
Logger log1 = Logger.getLogger(“cn.itcast.logger”);[创建名称为cn.itcast.lgger的日志器,它继承名为cn.itcast的格式化器]
log1.debug(“看不见!”);
}

通常我们创建日志器都是使用当前类的名称来创建:
Logger log = Logger.getLogger(Demo.class.getName());
这样我们可以通过配置父日志器来改变日志器的Appender和Level。

配置文件

1 log4j配置概述
log4j有两种配置文件,log4j.properties和log4j.xml。因为log4j是比较简单的组件,所以建议使用log4j.properties。
如果你把log4j放到项目的src下(即放到classes下),并且命名为log4j.properties,那么log4j会自动加载这个配置文件,这也是我们最为常用的方式。

2 根日志器
在配置文件中,需要配置名为log4j.rootLogger的日志器,它就是根日志器。其他的日志器都是根日志器的子日志器,会继承根日志器的发送器,以及级别等。
log4j.properties
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout

log4j.rootLogger表示根日志器,DEBUG是指定根日志器的输出级别,只要大于等于DEBUG级别的日志就可以输出。A1是说明发送器(Appender)的名称;
log4j.appender.A1表示发送器,org.apache.log4j.ConsoleAppender表示发送器为控制台发送器,即输出结果在控制台上显示;
log4j.appender.A1.layout表示A1这个发送器的格式化器,org.apache.log4j.SimpleLayout表示简化格式化器。
public void fun1() {
Logger log = Logger.getLogger(Demo1.class);
log.debug(“Hello”);
}

3 其他日志器
当然,也可以去配置其他的日志器,语法如下:
log4j.rootLogger=DEBUG,A1
log4j.logger.cn.itcast=WARN,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout

  我们不只配置了一个根日志器,还配置了一个名称为cn.itcast的日志器。继承关系你是懂得对吧。所有日志器如果名称是以cn.itcast前缀的,那么都会继承上面的配置,如果不是,那么继承的就是root日志器了。

Appender

1 Appender概述
Appender是用来指定输出目标的类,你可以叫它发送器。上面我们使用的ConsoleAppender就是用来向控制台输出的发送器。常用的发送器有:
ConsoleAppender:向控制台输出日志;
FileAppender:向文件输出日志
DailyRollingFileAppender:向文件输出日志,每天一个日志文件;
RollingFileAppender:向文件输出日志,当文件大小达到指定大小后,生成新文件;

2 ConsoleAppender
ConsoleAppender的目标是控制台!这也不多做解释
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout

3 FileAppender
FileAppender的目标是磁盘文件
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.FileAppender[指定AI发送器的类型为FileAppender]
log4j.appender.A1.File=log.txt[指定A1发送器的目标文件为log.txt]
log4j.appender.A1.Append=true[指定追加方式为true,即不会覆盖原有日志信息。默认即为true,所以可以不给出这个配置]
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout[指定发送器的格式化器为简单格式化器]

4 RollingFileAppender
RollingFileAppender是FileAppender的子类,它的作用是当日志文件大小超出文件大小大限时,会把日志文件转换成备份文件,然后再生成一个新的日志文件。
例如日志文件名为log.txt,设置文件大小上限为1KB,当log.txt文件的大小超出了1KB后,把log.txt的名称转换成log.txt.1,然后再生成一个log.txt,新的日志会写入到新的log.txt文件中。当log.txt的大小再次达到1KB时,把log.txt.1名称修改成log.txt.2,把log.txt修改成log.txt.1,然后再生成一个新的log.txt文件。
还可以设置文件的个数,当设置备份文件的个数为3时,表示最多可以有3个文件。当文件达到3后,再次达到1KB时,那么会删除最后一个文件。例如当前已经存在log.txt、log.txt.1、log.txt.2,这时如果log.txt又达到了1KB时,那么删除log.txt.2,然后把log.txt.1修改成log.txt.2,再把log.txt修改成log.txt.1,然后再创建log.txt文件。
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.RollingFileAppender[指定A1发送器的类型]
log4j.appender.A1FILE.File=log.txt[指定A1发送器的目标文件]
log4j.appender.A1.MaxFileSize=1KB[指定文件大小上限为1KB]
log4j.appender.A1.MaxBackupIndex=3[指定多大个日志文件]
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout[指定格式化器类型]

4 DailyRollingFileAppender
DailyRollingFileAppender会根据设定的时间频率生成备份文件。
当时间频率为yyyy-MM:按月生成备份文件;
当时间频率为yyyy-ww:按周生成备份文件;
当时间频率为yyyy-MM-dd:按天生成备份文件;
当时间频率为yyyy-MM-dd-a:每天生成两次备份;
当时间频率为yyyy-MM-dd-HH:按小时生成备份文件;
当时间频率为yyyy-MM-dd-HH-mm:按分钟生成备份文件。

log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender[指定A1发送器的类型]
log4j.appender.A1.File=log.txt[指定A1发送器的目标文件]
log4j.appender.A1.DatePattern=’.’yyyy-MM-dd[指定A1发送器的时间频率为每天生成一个备份文件。时间频率也是备份文件的后缀名,例如:log.txt.2013-05-06,如果没有给出’.’,那么就是log.txt2013-05-06]
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout

Layout

1 Layout种类
  我们需要给发送器指定格式化器,这样发送器就可以按照格式化器指定的格式来输出日志信息了。我们刚刚一直都在使用SimpleLayout格式化器,而我们常用的格式化器是PatternLayout!

2 PatternLayout
可以为PatternLayout指定一个模板,发送器会按模板来输出日志信息。例如模板为:hello: %m,其中%m是一个模式字符,下面介绍一下模式字符:
%m:信息本身;
%c:日志器的名称;
%d:日期,还可以指定日期的格式,例如:%d{yyyy-MM-dd HH:mm:ss};
%p:日志级别;
%n:换行;
%t:当前线程;
%l:输出日志的Java类相关信息。

在web项目中的配置
log4j.rootLogger=INFO,c1, f1

log4j.appender.c1=org.apache.log4j.ConsoleAppender
log4j.appender.c1.layout=org.apache.log4j.PatternLayout
log4j.appender.c1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m [%t] %c [%l]%n

log4j.appender.f1.File=${catalina.home}/logs/myproject.txt[指定tomcat的logs目录存放日志文件,如果希望存放到项目目录下,可以使用绝对路径。]
log4j.appender.f1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.f1.layout=org.apache.log4j.PatternLayout
log4j.appender.f1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m [%t] %c [%l]%n

课程列表:

1.传智播客网上书城-毕设项目资料介绍

2.项目运行及演示

3.项目所需小工具之CommonUtils(1生成uuid,2Map转换成JavaBean)

4.项目所需小工具之JdbcUtils(1获取Connection,2事务管理)

5.项目所需小工具之TxQueryRunner(把JdbcUtils和dbUtils整合在一起)

6.多表结果集映射,以及log4j配置c3p0日志信息

7.项目所需小工具之MailUtils(简化JavaMail)

8.项目所需小工具之BaseServlet(优先HttpServlet)

9.项目所需小工具之EncodingFilter(全站请求编码过滤器)

10.项目所需小工具之VerifyCodeServlet(生成一次性图片验证码)

11.项目所需jquery函数介绍

12.项目所需jquery函数介绍之ajax

13.项目前台功能介绍

14.项目后台功能介绍

15.项目的原型的目录结构(jsp、js、css目录)

16.项目的数据库表结构

17.项目所以依赖的jar包

18.项目中使用的配置文件介绍

19.项目的包命名规范

20.为项目添加全站编码过滤器

21.用户模块各层相关类的创建

22.注册页面(regist.jsp)的内容分析

23.注册页面之html实现

24.注册页面的css样式实现

25.注册页面之隐藏没有内容的错误信息实现

26.注册页面之验证码换一张实现

27.注册页面之注册按钮图片切换实现

课程截图:

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第一张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第三张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第四张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第五张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第六张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第七张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第八张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第九张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十一张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十二张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十三张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十四张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十五张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十六张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十七张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十八张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第十九张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二十张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二十一张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二十二张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二十三张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二十四张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二十五张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二十六张截图

Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天 第二十七张截图


Download Best WordPress Themes Free Download
Download Best WordPress Themes Free Download
Free Download WordPress Themes
Free Download WordPress Themes
free online course
download lenevo firmware
Download Premium WordPress Themes Free
lynda course free download

未经允许不得转载:拣钻资源网 » Java 网上图书商城开发 2014年 视频教程(六天速成) 第一天

赞 (0) 打赏

评论 0

评论前必须登录!

登陆 注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏