日志操作

发表时间:2017-05-10 14:10:14 浏览量( 28 ) 留言数( 0 )

学习目标:

1、了解Java的历史

2、为什么要学习Java语言

3、端正学习态度


学习过程:

一、Log4j简介

1、什么是Log4j

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

2、Log4j的5个级别

第一级别: DEBUG Level。指出细粒度信息事件对调试应用程序是非常有帮助的。

第二级别: INFO  level。表明消息在粗粒度级别上突出强调应用程序的运行过程。 

第三级别: WARN level。表明会出现潜在错误的情形。

第四级别: ERROR level。指出虽然发生错误事件,但仍然不影响系统的继续运行。

第五级别: FATAL level。指出每个严重的错误事件将会导致应用程序的退出。

这些级别是由高低之分的,最低级别是DEBUG级别,最高级别是FATAL level。如果当前的日志信息是低级别的,那就在属性文件中当前级别和比当前级别高的都会触发。

二、使用Log4j

Log4j的使用非常简单,按照以下几个步骤即可:

1、导包

我们需要导入commons-logging.jar和log4j-1.2.8.jar,在项目中新建lib,把这两个jar包复制进去,然后选择这两个点击add to Build Path即可。

2、建立总配置文件。

在src下面建立一个名字必须为log4j.properties的属性文件。属性文件内容如下:

#Log4J配置文件实现了输出到控制台、文件、按日期生成文件、回滚文件、数据库等功能。仅供参考。
log4j.rootLogger=DEBUG,CONSOLE,FILE,DLOGFILE,ROLLING_FILE
log4j.addivity.org.apache=true

#应用于控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

#应用于文件
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=d\:\\file.log
log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

#应用于按日期生成文件   像日记一样,每天一个文件
log4j.appender.DLOGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DLOGFILE.File=d\:\\dailyRolling.log
log4j.appender.DLOGFILE.Threshold=DEBUG
log4j.appender.DLOGFILE.DatePattern='.'yyyy-MM-dd
log4j.appender.DLOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.DLOGFILE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

#应用于文件回滚
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=DEBUG
log4j.appender.ROLLING_FILE.File=d\:\\rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.ROLLING_FILE.MaxFileSize=1KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=4
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

# 数据库输出
#log4j.appender.MYSQL_LOG=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.MYSQL_LOG.driver=com.mysql.jdbc.Driver
#log4j.appender.MYSQL_LOG.URL=jdbc:mysql://127.0.0.1:3306/txl
#log4j.appender.MYSQL_LOG.Threshold=ERROR
#log4j.appender.MYSQL_LOG.user=root
#log4j.appender.MYSQL_LOG.password=
#log4j.appender.MYSQL_LOG.sql=insert into log_monitor
#(level,category,thread,time,location,note) 
#values('%p','%c','%t','%d{yyyy-MM-dd HH:mm:ss:SSS}','%l','%m')
#log4j.appender.MYSQL_LOG.layout=org.apache.log4j.PatternLayout

日志信息可以输出到控制台、文件和数据库中,数据库我们暂时没有学到,所以先注释了,输出到文件在上面的示例中使用了三种方式,分别是:普通文件方式、按日期生成文件、文件回滚方式。属性文件的属性名称说明如下:

log4j.appender.CONSOLE.Threshold  是定义日志级别的。

log4j.appender.FILE.layout

log4j.appender.FILE.layout.ConversionPattern  定义日志信息的格式的。

其他的属性名称信息大家可以自己阅读代码。

3、在程序中应用

我们只需要使用Log对象即可

//通过日志工厂类获得日志对象

   protected static final Log log = LogFactory.getLog(Login.class);

我们模拟一下用户登录后记录用户的信息,代码如下:

public class Login {

	protected static final Log log = LogFactory.getLog(Login.class);
	public void login(String name, String password) {

		// 记录日志 记录在文本
		log.debug(name+"尝试登录了。");//调式级别
		System.out.println(name+"尝试登录了。");
		if(name.equals("admin")&&password.equals("admin")){
			System.out.println("登录成功了。");
			log.info(name+"登录成功了。");//信息级别
		}else{
			log.error(name+"登录失败了。");//错误级别
		}
	}
	
	public static void main(String[] args) {
		Login login=new Login();
		login.login("admin", "asdfasdf");
		
	}
}

4、测试。

下面你可以多运行一下这段代码,然后在控制台和D盘中看看日志文件的输出效果如何。