日志
使用log4j日志记录步骤
1、在项目中加入log4j的JAR文件
2、创建log4j.properties文件
3、配置日志信息
解决编写乱码


# 设置Logger输出级别和输出目的地 # 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=jbit.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
4、使用log4j记录日志信息


import java.util.InputMismatchException; import java.util.Scanner;import org.apache.log4j.Logger;public class Test {private static Logger logger = Logger.getLogger(Test.class.getName());public static void main(String[] args) {try {Scanner input = new Scanner(System.in);System.out.print("请输入第一个整数:");int num1 = input.nextInt();logger.debug("输入的第一个整数" + num1);System.out.print("请输入第二个整数:");int num2 = input.nextInt();logger.debug("输入的第二个整数" + num2);int jq = num1 / num2;String str = String.format("%d%d=%d", num1, num2, num1 / num2);logger.debug("输出结果:" + str);System.out.println(jq);} catch (InputMismatchException e) {logger.error(e.getMessage() + "输入不匹配");} catch (Exception e) {logger.error(e.getMessage() + "除数不能为0");e.printStackTrace();}} }
log4j配置文件详解
1. 日志级别
trace:追踪,就是程序推进一下,可以写个trace输出
debug:调试,一般作为最低级别,trace基本不用。
info:输出重要的信息,使用较多
warn:警告,有些信息不是错误信息,但也要给程序员一些提示。
error:错误信息。用的也很多。
fatal:致命错误。级别较高,这种级别不用调试了,重写吧……
机制:如果一条日志信息的级别大于等于配置文件的级别,就记录。
2. 输出源
CONSOLE(输出到控制台)、FILE(输出到文件)等。
3. 布局方式
SimpleLayout:以简单的形式显示
HTMLLayout:以HTML表格显示
PatternLayout:自定义形式显示
在Log4J2中基本采用PatternLayout自定义日志布局。
自定义格式:
%t:线程名称
%p:日志级别
%c:日志消息所在类名
%m:消息内容
%M:输出执行方法
%d:发生时间,%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2011-10-18 22:10:28,921
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%L:代码中的行数
%n:换行