发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

配置Log4J2的异常堆栈跟踪

    
2016-10-09 15:26
赞助商链接

有时我们在日志文件中不需要记录异常栈跟踪信息或者限制栈跟踪最大深度,在Java中,栈跟踪信息超过500行很常见,每天都可能有数千个这样的情况。

使用Lo4j2容易配置规定在日志中出现多少栈跟踪信息,下面是三个案例:

1.记录异常信息,但是隐去整个栈跟踪信息:

# log4j2.yml
Configuration:
Appenders:
Console:
— name: NoStackTrace
target: SYSTEM_OUT
PatternLayout:
Pattern: “[%t] %-5level %logger{36} %msg — %ex{short.message} %n”


日志结果会是出现:

[main] ERROR org.behrang.labs.Main An error occurred — I am thrown from a rogue method


2.记录异常信息和其栈跟踪第一行:

# log4j2.yml
Configuration:
Appenders:
Console:
— name: FirstLineOfStackTrace
target: SYSTEM_OUT
PatternLayout:
Pattern: “[%t] %-5level %logger{36} %msg — %ex{short} %n”


日志结果是:

[main] ERROR org.behrang.labs.Main An error occurred — java.lang.Exception: I am thrown from a rogue method
at org.behrang.labs.Main.rogueMethod(Main.java:22)


3.记录异常信息和栈跟踪头5行。

#log4j2.yml
Configuration:
Appenders:
Console:
— name: FirstFiveLines
target: SYSTEM_OUT
PatternLayout:
Pattern: “[%t] %-5level %logger{36} %msg — %ex{5} %n”


日志结果:

[main] ERROR org.behrang.labs.Main An error occurred — java.lang.Exception: I am thrown from a rogue method
at org.behrang.labs.Main.rogueMethod(Main.java:22)
at org.behrang.labs.Main.main(Main.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)


Configuring how exception stack traces appear in l

log4j     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com