Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jetty能否将System.out和System.err捕获到日志文件中?_Java_Logging_Jetty_Embedded Jetty - Fatal编程技术网

Java Jetty能否将System.out和System.err捕获到日志文件中?

Java Jetty能否将System.out和System.err捕获到日志文件中?,java,logging,jetty,embedded-jetty,Java,Logging,Jetty,Embedded Jetty,我正在与Jetty embedded server合作,用一个遗留jar构建一个REST api,它对println有很多非常有用的调用,我运行它的类,它在控制台中打印东西。我现在试图将这些println与请求状态一起保存在一个文件中,但NCSARequestLog只记录响应的文件日期和代码。那么,有没有办法将所有内容都记录到一个文件中?我很确定这是可能的,因为在我们将遗留jar包装到部署到Glassfish中的war文件中之前,所有打印都会显示在服务器日志中 感谢jetty util-.jar

我正在与Jetty embedded server合作,用一个遗留jar构建一个REST api,它对println有很多非常有用的调用,我运行它的类,它在控制台中打印东西。我现在试图将这些println与请求状态一起保存在一个文件中,但NCSARequestLog只记录响应的文件日期和代码。那么,有没有办法将所有内容都记录到一个文件中?我很确定这是可能的,因为在我们将遗留jar包装到部署到Glassfish中的war文件中之前,所有打印都会显示在服务器日志中

感谢jetty util-.jar中有一个名为RolloverFileOutputStream的类,可以实例化它,然后设置它来接管System.out和System.err的滚动

例如:

包装演示; 导入java.io.File; 导入java.io.IOException; 导入java.io.PrintStream; 导入java.util.TimeZone; 导入org.eclipse.jetty.util.RolloverFileOutputStream; 公共类控制台许可证演示 { 公共静态无效主字符串[]args引发IOException { File loggingDir=新文件日志; 如果!loggingDir.存在 { 如果!loggingDir.mkdirs { 抛出新RuntimeExceptionEnable以创建目录:+loggingDir; } } String loggingFile=new FileloggingDir,yyyy\u mm\u dd.jetty.log.getAbsolutePath; 布尔追加=假; 保留天数=90天; 时区=TimeZone.getTimeZoneGMT; RolloverFileOutputStream logStream=新的RolloverFileOutputStreamloggingFile, 附加、保留日期、区域; System.out.printlnook-at+logStream.getFilename; PrintStream logWriter=新的PrintStreamlogStream; System.setOutlogWriter; System.setErrlogWriter; System.out.printlnFrom System.out-hi在那里; System.err.printlnFrom System.err-再次您好; } }