Tag: echo

如何在log4j RollingFileAppender中从Java中启动的Shell脚本输出日志?

我在Tomcat上运行Java Web应用程序,在运行时执行Shell脚本,其中执行许多“echo”命令。 我的问题是我希望我的所有日​​志都出现在log4j RollingFileAppender中,即: Java Log4j日志(很容易做到) Shell echo命令日志(这对我来说是棘手的部分) Shell脚本通过java.lang.Process类运行。 到目前为止,由于log4j提供的StreamUtils.copy()方法,我已设法将进程的inputStream和errorStream输出到System.out。 但是这样可以获得一些ConsoleAppender输出,但不是RollingFileAppender输出。 有没有方便的方法将Process流重定向到RollingFileAppender? 在Log4j配置中还是从Java代码? 这是我的LOG4J appender conf: 这是我的启动脚本代码: ProcessBuilder pb = new ProcessBuilder(“sh”, “script.sh”); Process p = pb.start(); StreamUtils.copy(p.getInputStream(), System.out); StreamUtils.copy(p.getErrorStream(), System.out); int result = p.waitFor(); LOG.info(“Script ended with result ” + result); return (result == 0);