java 各种日志输出写法_logger4j的日志输出怎么写好?推荐格式

Logge有5个日志等级 trace、debug、info、warn、error, 这5个级别都有5个以String为首参数重载方法,如error

void error(String var1);

void error(String var1, Object var2);

void error(String var1, Object var2, Object var3);

void error(String var1, Object... var2);

void error(String var1, Throwable var2);

一般来说,这几个方式的使用是:

如果要输出变量,通过{ } 占位符,

logDemo.logger.error("11{},22{}", "aa", "bb"); // 不用+号拼接,这样好处就是减少Stirng对象的产生,提高性能

如果要输出异常,通过void error(String var1, Throwable var2)

logDemo.logger.error("",e);

那么,如果要同时输出变量和异常,只能2句吗?

logDemo.logger.error("11{},22{}", "aa", "bb"); // 不推荐

logDemo.logger.error("",e); // 不推荐

答案当然是否定的。在log4j里, ParameterizedMessage 类的构造方法里,有对最后一个参数的判断逻辑

if (argsCount < arguments.length && this.throwable == null && arguments[arguments.length - 1] instanceof Throwable) {

this.throwable = (Throwable)arguments[arguments.length - 1];

--resultArgCount;

}

所以,只用一句就够了。当然 , e 必须放在最后一个参数

logger.error("11{},22{}", "aa", "bb", e); //推荐

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值