学习log4j日志记录器。java

日志记录器:

个人总结:就是要记录一下代码运行,记录一下重要的过程。特别是异常。比如:一个项目有些错误很长时间发生一次,我们就可以去看日志文件。找到相应的问题。而不要去等下一次问题出现。
日志解析

日志(log)
主要用来记录系统运行中一些重要操作信息
便于监视系统运行情况,帮助用户提前发现和避开可能出现的问题,或者出现问题后根据日志找到原因
日志分类
SQL日志、异常日志、业务日志
log4j是一个非常优秀的开源日志记录工具
控制日志的输出级别
控制日志信息输送的目的地是控制台、文件等
控制每一条日志的输出格式

log4j使用。

在这里插入图片描述

1.下载log4j的jar
2.把jar移到项目中,用build path(生成路径 ),使项目找到jar。

目录结构

在这里插入图片描述

3.在src下建立log4j.properties文件。内容一般固定。如下
在这里插入图片描述

级别,输出的文件方式

log4j.rootLogger=debug, stdout,logfile

控制台输出

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

文件输出

log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=e:/pctc.log //记录日志信息的文件,可以直接改,自动生成文件
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n

日志级别:

它们定义了日志显示的级别,一共分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,明白这一点很重要,这里Log4j有一个规则:假设设置了级别为P,如果发生了一个级别Q比P高,则可以启动,否则屏蔽掉。

代码实现
import java.util.InputMismatchException;
import java.util.Scanner;

import org.apache.log4j.Logger;

import com.pctc.testlog.TestLog;

public class Testlog4j{
	  private static Logger logger=Logger.getLogger(TestLog.class.getName());
	public static void main(String[] args) {
		try {
			System.out.println("输入一个字母");
			Scanner input =new Scanner(System.in);
			String num1=input.next();
			logger.debug("file输入字母:" + num1);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		finally {
			logger.info("欢迎使用本程序!");
		}
		try{
		System.out.println("");
		Scanner in = new Scanner(System.in);
		
		System.out.print("请输入被除数:");
		
		int num1 = in.nextInt();
		
		logger.debug("file输入被除数:" + num1);
		
		
		System.out.print("请输入除数:");
		int num2 = in.nextInt();
		
		logger.info("file输入除数:" + num2);		
		
		logger.debug("file输出运算结果:" + String.format("%d / %d = %d",num1, num2, num1 / num2));


	} catch (InputMismatchException e) {
		logger.error("被除数和除数必须是整数", e);
	} catch (ArithmeticException e) {
		logger.error(e.getMessage());
	} catch (Exception e) {
		logger.error(e.getMessage());			
	} finally {
	    logger.info("欢迎使用本程序!");
	}
	}
	
}
控制台:
输入一个字母
k
DEBUG - file输入字母:k
INFO - 欢迎使用本程序!

请输入被除数:10
DEBUG - file输入被除数:10
请输入除数:0
INFO - file输入除数:0
ERROR - / by zero
INFO - 欢迎使用本程序!

日志文件增加信息

在这里插入图片描述

如果把日志级别从DEBUG改为INFO

在这里插入图片描述
则代码在执行后:
在这里插入图片描述
日志文件变化:
在这里插入图片描述

日志级别经验

一般我们是开发是日志级别是Debug,发布后是INFO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值