我有一个自定义记录器(MyLogger),我使用logback记录数据。 在下面的示例代码中,logback将MyLogger.logData记录为调用类/方法(调用者{0})。我想跳过打印,而只打印调用类/方法。 基本上只是来电者{1}。
有没有办法以编程方式这样做?
class MyLogger {
public logData(String data) {
//use logback
logBackLogger.log(data);
}
class CallingClass {
MyLogger myLogger = new MyLogger;
myLogger.logData("test");
}
感谢。
答案 0 :(得分:0)
想出解决方案。实现了doLayout并在这里调用了getCallerData [1]。
公共类MyLayout扩展了PatternLayoutBase {
public String doLayout(ILoggingEvent event) {
sbuf.append(event.getTimeStamp());
sbuf.append(" " );
sbuf.append(event.getLevel());
sbuf.append(" [");
sbuf.append(event.getCallerData()[1]);
sbuf.append("] ");
sbuf.append(" ~- ");
sbuf.append(event.getFormattedMessage());
sbuf.append("\n");
return sbuf.toString();
}