关于日志与异常

在项目中的约定

  • 生产环境禁止直接使用 System.out 或 System.err 输出日志或使用 e.printStackTrace() 打印异常堆栈. 由于标准日志输出与标准错误输出文件每次 Jboss 重启时才滚动, 如果大量输出送往这两个文件, 容易造成文件大小超过操作系统大小限制.

  • 输出的 POJO 类建议重写 toString 方法,有利于在debugger过程中,查看对象信息.

  • 可以使用 warn 日志级别来记录用户输入参数错误的情况, 避免用户投诉时, 无所适从. 注意日志输出的级别,error 级别只记录系统逻辑出错、异常、或者重要的错误信息. 如非必要, 请不要在此场景打出 error 级别, 避免频繁报警.

  • 异常和日志

反例:抛出异常,则不需要记录logger,交给相应的ExceptionHandler记录日志信息

try {
	service.start();
}catch(Exception e){
	logger.error("error Msg :{}", e.getMessage());
	throw new RuntimeException("error Msg", e.getMessage());
}

正例:抛出异常,记录出错信息的堆栈信息,exception要放在参数末尾

try {
	service.start();
}catch(Exception e){
	logger.info("error Msg :{}",ex.getMessage(), e);
}


//参数列表中包含异常,异常会将堆栈信息打印出来
    private void initThrowable(final Object[] params, final int usedParams) {
        if (params != null) {
            final int argCount = params.length;
            if (usedParams < argCount
				&& this.throwable== null 
				&& params[argCount - 1] instanceof Throwable){
                this.throwable = (Throwable) params[argCount - 1];
            }
        }
    }

转载于:https://my.oschina.net/u/3706181/blog/2961394

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值