log4j.appache保存出错日志

代码案例

package jabao;

import org.apache.log4j.Logger;

public class Hello {
    //根据当前类创建记录器
    private Logger log=Logger.getLogger(Hello.class);
    public void show (int i,int j){
        try {
            int a=i/j;
            System.out.println(90);
        }catch (Exception ex){
            //打印堆栈的信息,异常内容
            //ex.printStackTrace();
            //调用方法记录日志

            log.debug("操作有误",ex);
        }
    }

    public static void main(String[] args) {
        Hello h=new Hello();
        h.show(12,0);
    }
}
二、Log4j.properties
#设置日志记录的级别,以及需要的输出位置
log4j.rootLogger=debug,a,b

#设置输出源 a的信息
#设置 a 使用的记录工具
log4j.appender.a=org.apache.log4j.ConsoleAppender
#使用Syetem.out 进行输出
log4j.appender.a.Target=System.out
#设置输出的格式的布局
log4j.appender.a.layout=org.apache.log4j.PatternLayout
#设置数据显示模板
log4j.appender.a.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %c %l %M %m%n

log4j.appender.b=org.apache.log4j.FileAppender
log4j.appender.b.File=test.log
log4j.appender.b.layout=org.apache.log4j.PatternLayout
log4j.appender.b.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %l %m%n

三、test.log(运行自动产生)
2018-05-16 14:43:39  jabao.Hello.show(Hello.java:15) 操作有误
java.lang.ArithmeticException: / by zero
   at jabao.Hello.show(Hello.java:10)
   at jabao.Hello.main(Hello.java:21)
2018-05-16 14:46:20  jabao.Hello.show(Hello.java:17) 操作有误
java.lang.ArithmeticException: / by zero
   at jabao.Hello.show(Hello.java:10)
   at jabao.Hello.main(Hello.java:23)

设置过程log4j的使用方式

a)添加log4j需要的jar文件到 项目中
并把jar 添加到类路径
b)在 src下创建名为 log4j.properties 的资源文件
c)在资源文件中添加 日志输出的配置
设置日志的级别和输出的源

日志的四个级别

error>warn>info>debug
如果设置的级别为 warn 那么 通过 info() 和debug() 方法写入的信息 无法记录


#设计日志记录的级别和输出源的名称
#注意 设置输出源名是 该名称必须存在
log4j.rootLogger=debug,a,b
#设置每一个源的配置
#指定添加日志的方式
log4j.appender.a=org.apache.log4j.ConsoleAppender
#设置输出信息的目标
log4j.appender.a.Target=System.out
#设置输出信息的布局
log4j.appender.a.layout=org.apache.log4j.PatternLayout
#设置模板布局的格式
log4j.appender.a.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n 


log4j.appender.b=org.apache.log4j.FileAppender
#指定文件的名称和位置
log4j.appender.b.File=D:\\test.log
log4j.appender.b.layout=org.apache.log4j.PatternLayout
log4j.appender.b.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n 


-----------------------------

%d:表示日期

%c:表示异常类型

% l:表示产生记录日志的位置

%M :异常的方法名

%m: 表示日志的堆栈信息

%n :表示换行

%t 发生异常的线程名称

%p 记录日志的级别

d)在java中使用日志工具记录异常信息

注意:必须引入

    org.apache.log4j.Logger;

i)在Java类中创建日志记录记录器的对象

    private Logger log=Logger.getLogger(类名,class)

ii)使用Logger 中方法记录信息

    log.error()

    log.warn()

    log.info()

    log.debug()

Log4j记录的内容给谁看

a)运维,维护人员

b)产品经理,了解该项目中那些模块使用的频率

c)可以通过日志 对数据的恢复


异常-——-——-——

处理异常后,保证程序可以继续运行
public class Jiejuekehu {
        private static Logger log=Logger.getLogger(Jiejuekehu.class);
        public static void main(String[] args) {
            //记录用户操作了几次
//        不管成功失败都要记录
            int i=0;
            while(true){
                Scanner in=new Scanner(System.in);
                try {
                    System.out.print("a:");
                    int a=in.nextInt();
                    System.out.print("b:");
                    int b=in.nextInt();
                    System.out.println(a+b);
                } catch (Exception e) {
                    log.debug("",e);
                    System.out.println("你输入有误,请重新输入");
                } finally{
                    i++;
                }
            }
        }
    }

-——-通过异常解决输入字符错误停止程序的问题;提示 客户

System.out.println("你输入有误,请重新输入");

log.debug("",e);
通过log4j.记录错误信息;方便以后运维人员对系统进行维护;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值