Mulesoft / Cloudhub - 如何从Java类中获取输出以显示在日志中?

时间:2016-12-01 16:30:41

标签: logging mule invoke mule-studio

标题说明了一切......

我有一个部署到cloudhub的Mulesoft应用程序(但是本地/本地运行的问题是相同的)。我的应用程序有一个Java Invoke组件,它调用我的Java类中的方法。

该方法包含输出语句,例如System.out和System.err。如果我在Anypoint Studio中运行我的应用程序,此输出将按预期显示在控制台中...但它不会显示在日志文件中(本地或在cloudhub上)。

如何从我的Java类中获取输出以显示在日志文件中?

1 个答案:

答案 0 :(得分:1)

这是预期的... System.out不打印在日志中不应该用于prod环境...
您需要在src/main/resource文件夹中使用log4j2.xml,并且需要在Java类中使用org.apache.logging.log4j

一个例子: -

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Log4j2Tester {
    private static final Logger LOG = LogManager.getLogger(Log4j2Tester.class);

    public String test(String args) {
        LOG.error("testing ERROR level");

        LOG.info("testing INFO level");
        LOG.trace("exiting application");
        return "Done";
    }
}

更多参考: - https://logging.apache.org/log4j/2.x/manual/configuration.html
对于Cloudhub自定义日志追加器: - https://docs.mulesoft.com/runtime-manager/custom-log-appender