log4j官网下载地址:http://logging.apache.org/
1、添加jar包:
将jar包放进项目文件目录下(MyEclipse)
Project–Properties–Java Build Path–Libraries–Add JARs…
这样做,可以保证移动项目文件路径的时候,jar包能够以相对路径的方式访问,避免日后更新jar包路径
2、新建log4j配置文件(log4j.properties):
在src下新建文件:src右键–New–File
文件命名:log4j.properties
3、编写配置文件:
//设置Logger输出级别debug,输出目的地stdout,logfile
log4j.rootLogger=debug,stdout,logfile
//目的地stdout输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
//ConsoleAppender的Target属性,默认为System.out,改为System.err(字体变红)
log4j.appender.stdout.Target=System.err
//Layout属性:SimpleLayout
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
//单独设置目的地的输出级别
log4j.appender.logfile.threshold=error
//目的地logfile输出到文件
log4j.appender.logfile=org.apache.log4j.FileAppender
//FileAppender的File属性,输出文件的路径文件名:jbit.log
log4j.appender.logfile.File=jbit.log
//Layout属性:PatternLayout格式化样式
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
//Layout的ConversionPattern属性
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n
输出优先级别:fatal>error>warn>info>debug
ConsoleAppender:
- Target:System.out/System.err
FileAppender:
- File:路径
layout:
- SimpleLayout
- HTMLLayout
- PatternLayout
PatternLayout需要设置layout.ConversionPattern:
- %d{yyyy-MM-dd HH:mm:ss} // 时间格式
- %l // 类名+线程+行数
- %F // 文件名
- %p // 优先级别
- %m // 自定义消息
- %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 in = new Scanner(System.in);
System.out.print("请输入被除数:");
int num1 = in.nextInt();
logger.info("输入被除数:" + num1);
System.out.print("请输入除数:");
int num2 = in.nextInt();
logger.info("输入除数:" + num2);
System.out.println(String.format("%d / %d = %d", num1, num2, num1
/ num2));
logger.info("输出运算结果:"
+ String.format("%d / %d = %d", num1, num2, num1 / num2));
} catch (InputMismatchException e) {
logger.error("被除数和除数必须是整数", e);
} catch (ArithmeticException e) {
logger.error(e);
} catch (Exception e) {
logger.error(e.getMessage());
} finally {
System.out.println("欢迎使用本程序!");
}
}
}