首页 > 解决方案 > 如何在 Wildfly jboss 中登录到不同的文件?

问题描述

这就是我通常在 Wildfly 中执行登录的方式。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyClass{ 
    private static Logger logger = LoggerFactory.getLogger(MyClass.class);
    public function testLog(){
        logger.info("Test1 -> this will be printed in /opt/servers/jboss/standalone/log/server.log");
    }
}

现在因为MyClass比较特殊,需要输出到不同的文件。

我如何将日志/opt/servers/jboss/standalone/log/server.log/opt/servers/jboss/standalone/log/myclass.log

我也知道我们可以通过执行以下操作来获取标准日志的当前目录。然后我可以将它写入另一个文件,但这是最佳做法吗?

File logDir = new File(System.getProperty("jboss.server.log.dir"));
// that logDir.getAbsolutePath() will result  /opt/servers/jboss/standalone/log

标签: jbosswildflyslf4j

解决方案


您可以使用日志配置文件或创建新的文件处理程序。

要创建新的文件处理程序,您可以执行以下操作。

/subsystem=logging/file-handler=my-handler:add(file={path=myclass.log, relative-to=jboss.server.log.dir}, append=true, autoflush=true)
/subsystem=logging/logger=your.package.MyClass:add(handlers=[my-handler], level=INFO, use-parent-handlers=false)

推荐阅读