记录其余的电话

时间:2017-04-26 07:58:20

标签: facebook logging ads

我正在使用群组:'com.facebook.ads.sdk',名称:'facebook-java-ads-sdk',版本:'0.4.0'

在com.dan.dadl.ccr.process.facebook.APIContext上有方法setLogger(PrintStream logger)

默认情况下,这会记录到System.out

我想将其余调用记录到应用程序的日志中。该应用程序使用log4j2。

有谁能告诉我怎么做?

1 个答案:

答案 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的所有输出都将重定向到文件。