我正在使用群组:'com.facebook.ads.sdk',名称:'facebook-java-ads-sdk',版本:'0.4.0'
在com.dan.dadl.ccr.process.facebook.APIContext上有方法setLogger(PrintStream logger)
默认情况下,这会记录到System.out
我想将其余调用记录到应用程序的日志中。该应用程序使用log4j2。
有谁能告诉我怎么做?
答案 0 :(得分:0)
要做到这一点,您需要更改system.out PrintStream
。您需要下一个代码行才能完成。
public String getLoggerFileName() {
org.apache.logging.log4j.core.Logger loggerImpl = (org.apache.logging.log4j.core.Logger) log;
Appender appender = loggerImpl.getAppenders().get("FileAppender");
// Unfortunately, File is no longer an option to return, here.
return ((FileAppender) appender).getFileName();
}
final static Logger log = LogManager.getLogger(WebApplicationInitializer.class);
在应用的静态阻止或入口点,您需要添加以下行:
//redirect sysout to log
File file = new File(getLoggerFileName());
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
PrintStream ps = new PrintStream(fos);
System.setOut(ps);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
因此,System.out.println
的所有输出都将重定向到文件。