Logging Pentaho水壶-写入日志文件时出错

Logging Pentaho水壶-写入日志文件时出错,logging,pentaho,kettle,Logging,Pentaho,Kettle,我们有一个Pentaho作业,它在本地环境中运行良好,但是在部署日志文件并使用Kettle运行该作业后,我们在写入日志文件时出错。此错误发生在选中“为每个输入行执行”设置的作业中。下面是日志设置的配置方式。路径和名称是前面设置的变量。在此步骤之前,它能够很好地登录到文件 作业日志记录配置 这是我在运行调试日志级别的Ketter时遇到的错误。在失败的工作中,我们也在写日志,我不知道这是否是一个坏习惯。还有谁遇到过这个问题并知道解决方案吗 ProcessFiles - Log folder [fi

我们有一个Pentaho作业,它在本地环境中运行良好,但是在部署日志文件并使用Kettle运行该作业后,我们在写入日志文件时出错。此错误发生在选中“为每个输入行执行”设置的作业中。下面是日志设置的配置方式。路径和名称是前面设置的变量。在此步骤之前,它能够很好地登录到文件

作业日志记录配置

这是我在运行调试日志级别的Ketter时遇到的错误。在失败的工作中,我们也在写日志,我不知道这是否是一个坏习惯。还有谁遇到过这个问题并知道解决方案吗

ProcessFiles - Log folder [file:////<ServerPath>/QA/PentahoLogs] exists.
ProcessFiles - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Unable to open file appender for file [${LOGFOLDER}${LOGFILENAME}_20161005.txt] : org.pentaho.di.core.exception.KettleException:
ProcessFiles - There was an error while trying to open file 'file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt' for writing
ProcessFiles - Could not write to "file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt" because it is currently in use.
ProcessFiles - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleException:
ProcessFiles - There was an error while trying to open file 'file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt' for writing
ProcessFiles - Could not write to "file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt" because it is currently in use.
ProcessFiles -
ProcessFiles -    at org.pentaho.di.core.logging.LogChannelFileWriter.<init>(LogChannelFileWriter.java:78)
ProcessFiles -    at org.pentaho.di.core.logging.LogChannelFileWriter.<init>(LogChannelFileWriter.java:96)
ProcessFiles -    at org.pentaho.di.job.entries.job.JobEntryJob.execute(JobEntryJob.java:552)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:723)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:864)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:864)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:864)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:545)
ProcessFiles -    at org.pentaho.di.job.Job.run(Job.java:435)
ProcessFiles - Caused by: org.apache.commons.vfs2.FileSystemException: Could not write to "file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt" because it is currently in use.
ProcessFiles -    at org.apache.commons.vfs2.provider.DefaultFileContent.getOutputStream(DefaultFileContent.java:475)
ProcessFiles -    at org.pentaho.di.core.vfs.KettleVFS.getOutputStream(KettleVFS.java:289)
ProcessFiles -    at org.pentaho.di.core.logging.LogChannelFileWriter.<init>(LogChannelFileWriter.java:76)
ProcessFiles -    ... 8 more
ProcessFiles-日志文件夹[file://///QA/PentahoLogs]存在。
ProcessFiles-错误(版本6.1.0.1-196,buildguy从2016-04-07 12.08.49开始构建1):无法打开文件[${LOGFOLDER}${LOGFILENAME}}{U 20161005.txt]:org.pentaho.di.core.exception.cattleexception:
ProcessFiles-尝试打开文件“”时出错file://///QA/PentahoLogs/PartImportLog_20161005.txt“为了写作
ProcessFiles-无法写入“file://///QA/PentahoLogs/PartImportLog_20161005.txt“因为它目前正在使用。
ProcessFiles-错误(版本6.1.0.1-196,buildguy从2016-04-07 12.08.49开始构建1):org.pentaho.di.core.exception.cattleexception:
ProcessFiles-尝试打开文件“”时出错file://///QA/PentahoLogs/PartImportLog_20161005.txt“为了写作
ProcessFiles-无法写入“file://///QA/PentahoLogs/PartImportLog_20161005.txt“因为它目前正在使用。
处理文件-
ProcessFiles-位于org.pentaho.di.core.logging.LogChannelFileWriter(LogChannelFileWriter.java:78)
ProcessFiles-位于org.pentaho.di.core.logging.LogChannelFileWriter(LogChannelFileWriter.java:96)
ProcessFiles-at org.pentaho.di.job.entries.job.JobEntryJob.execute(JobEntryJob.java:552)
ProcessFiles-at org.pentaho.di.job.job.execute(job.java:723)
ProcessFiles-位于org.pentaho.di.job.job.execute(job.java:864)
ProcessFiles-位于org.pentaho.di.job.job.execute(job.java:864)
ProcessFiles-位于org.pentaho.di.job.job.execute(job.java:864)
ProcessFiles-at org.pentaho.di.job.job.execute(job.java:545)
ProcessFiles-at org.pentaho.di.job.job.run(job.java:435)
ProcessFiles-由以下原因引起:org.apache.commons.vfs2.FileSystemException:无法写入“file://///QA/PentahoLogs/PartImportLog_20161005.txt“因为它目前正在使用。
ProcessFiles-位于org.apache.commons.vfs2.provider.DefaultFileContent.getOutputStream(DefaultFileContent.java:475)
ProcessFiles-位于org.pentaho.di.core.vfs.KettleVFS.getOutputStream(KettleVFS.java:289)
ProcessFiles-位于org.pentaho.di.core.logging.LogChannelFileWriter(LogChannelFileWriter.java:76)
处理文件-。。。8个以上
阅读日志:

ProcessFiles-无法写入“file://///QA/PentahoLogs/PartImportLog_20161005.txt“因为它目前正在使用


因此,这意味着其他进程正在锁定txt文件。

请确保同一存储库用户或其他用户中的其他作业未使用日志路径/文件

文件不是由任何个人打开的,此日志仅对此作业唯一。似乎作业本身正在锁定文件,我不知道为什么。我做了一些研究,似乎Pentaho在UNC路径方面有问题,这可能是失败的原因。当我们指向本地驱动器时,问题没有发生。请尝试使用${Internal.job.Filename.Directory}${LOGFOLDER}${LOGFILENAME}设置与作业相关的路由。谢谢,对此表示抱歉。下一次我会处理好的。