Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
组合log4j和log4perl日志_Log4j_Log4perl - Fatal编程技术网

组合log4j和log4perl日志

组合log4j和log4perl日志,log4j,log4perl,Log4j,Log4perl,我有一个Java应用程序,它使用Runtime.exec启动一个Perl程序,等待它返回,然后继续。我希望Java应用程序的log4j输出和Perl程序的log4perl输出都转到同一个文件中 在我的log4j.properties文件中,我有: log4j.appender.app=org.apache.log4j.DailyRollingFileAppender log4j.appender.app.File=/path/app.log log4j.appender.app.DatePatt

我有一个Java应用程序,它使用Runtime.exec启动一个Perl程序,等待它返回,然后继续。我希望Java应用程序的log4j输出和Perl程序的log4perl输出都转到同一个文件中

在我的log4j.properties文件中,我有:

log4j.appender.app=org.apache.log4j.DailyRollingFileAppender
log4j.appender.app.File=/path/app.log
log4j.appender.app.DatePattern=.yyyy-MM-dd
log4j.appender.Append.Append=false
log4j.appender.app.layout=org.apache.log4j.patternalyout
log4.appender.app.layout.ConversionPattern=%5p[%t](%F:%L)%m%n

(我将Append设置为false,因为如果重新启动Java应用程序,我希望覆盖同一天以前的任何日志文件。)

在Perl程序中,我有:

Log::Log4perl->easy_init({level=>$DEBUG,
文件=>“>>/path/app.log”})

这将导致log4j输出和log4perl输出进入同一个文件,但当Perl程序完成时,Java应用程序似乎无法再写入该文件

我可以在Java端重置我的文件句柄吗? 我是否可以将记录器传递给Perl程序而不是文件名

我曾想过将输出从两者发送到控制台,然后将其保存到一个文件中,但这对我来说是一种功能损失,因为我正在利用将不同级别的输出发送到控制台和文件的优势