单行日志使用log4j打印类名、方法名和异常行号
Print className, method name and line number of exceptiopn using log4j in single line log
我想使用 log4j 在单行中打印 class 异常的名称、方法名称和行号。
为此,我正在查看。
http://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout
我想按以下格式登录:
2015-03-03 16:18:30,480 log4j 测试 java.lang.NullPointerException com.test.Piyush main 40
但是我得到的每件事都是换行的。
2015-03-03 16:18:30,480 Testing for for log4j java.lang.NullPointerException
at com.test.Piyush.main(Piyush.java:40)
java.lang.NullPointerException
at com.test.Piyush.main(Piyush.java:40)
java.lang.NullPointerException
at com.test.Piyush.main(Piyush.java:40)
java.lang.NullPointerException
at com.test.Piyush.main(Piyush.java:40)
使用的 Log4j 配置:
log4j.logger.com.myLogger=INFO, mylogFile
log4j.appender.mylogFile=org.apache.log4j.RollingFileAppender
log4j.appender.mylogFile.File=logs/infibeam.log
log4j.appender.mylogFile.MaxFileSize=10000KB
log4j.appender.mylogFile.MaxBackupIndex=20
log4j.appender.mylogFile.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.mylogFile.layout.ConversionPattern=%d %m %throwable{short.className} %throwable{"short.methodName"} %throwable{"short.lineNumber"} %throwable{short.message}
您可以扩展 org.apache.log4j.Layout
class 并覆盖 public String format(LoggingEvent event)
方法以生成您想要的任何输出格式。
然后使用您的自定义布局在 log4j.properties
文件中定义附加程序。
自定义布局Class:
public class MyCustomLayout extends Layout {
@Override
public void activateOptions()
{
}
@Override
public String format(LoggingEvent event) {
//Your formatting code goes here
//You can access all information in event and generate the format you want
String output = "Your custome log format";
return output;
}
@Override
public boolean ignoresThrowable() {
return false;
}
}
在您的 log4.properties 文件中使用自定义布局
log4j.appender.myappender.layout=MyCustomLayout
我想使用 log4j 在单行中打印 class 异常的名称、方法名称和行号。
为此,我正在查看。 http://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout
我想按以下格式登录:
2015-03-03 16:18:30,480 log4j 测试 java.lang.NullPointerException com.test.Piyush main 40
但是我得到的每件事都是换行的。
2015-03-03 16:18:30,480 Testing for for log4j java.lang.NullPointerException
at com.test.Piyush.main(Piyush.java:40)
java.lang.NullPointerException
at com.test.Piyush.main(Piyush.java:40)
java.lang.NullPointerException
at com.test.Piyush.main(Piyush.java:40)
java.lang.NullPointerException
at com.test.Piyush.main(Piyush.java:40)
使用的 Log4j 配置:
log4j.logger.com.myLogger=INFO, mylogFile
log4j.appender.mylogFile=org.apache.log4j.RollingFileAppender
log4j.appender.mylogFile.File=logs/infibeam.log
log4j.appender.mylogFile.MaxFileSize=10000KB
log4j.appender.mylogFile.MaxBackupIndex=20
log4j.appender.mylogFile.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.mylogFile.layout.ConversionPattern=%d %m %throwable{short.className} %throwable{"short.methodName"} %throwable{"short.lineNumber"} %throwable{short.message}
您可以扩展 org.apache.log4j.Layout
class 并覆盖 public String format(LoggingEvent event)
方法以生成您想要的任何输出格式。
然后使用您的自定义布局在 log4j.properties
文件中定义附加程序。
自定义布局Class:
public class MyCustomLayout extends Layout {
@Override
public void activateOptions()
{
}
@Override
public String format(LoggingEvent event) {
//Your formatting code goes here
//You can access all information in event and generate the format you want
String output = "Your custome log format";
return output;
}
@Override
public boolean ignoresThrowable() {
return false;
}
}
在您的 log4.properties 文件中使用自定义布局
log4j.appender.myappender.layout=MyCustomLayout