【发布时间】:2012-11-22 07:22:40
【问题描述】:
我有一个日志文件 (log.txt),格式为:
=========================================
March 01 2050 13:05:00 log v.2.6
General Option: [default] log_options.xml
=========================================
Loaded options from xml file: '/the/path/of/log_options.xml'
printPDF started
PDF export
PDF file created:'/path/of/file.1.pdf'
postProcessingDocument started
INDD file removed:'/path/of/file.1.indd'
Error opening document: '/path/of/some/filesomething.indd':Error: file doesnt exist or no permissions
=========================================
March 01 2050 14:15:00 log v.2.6
General Option: [default] log_options.xml
=========================================
Loaded options from xml file: '/the/path/of/log_options.xml'
extendedprintPDF started
extendedprintPDF: Error: Unsaved documents have no full name: line xyz
注意:每个文件名的格式为:3lettersdatesomename_LO.pdf/indd。示例:MNM011112ThisFile_LO.pdf。此外,在给定的日期和时间,条目可能只有错误,只有关于创建的文件的消息或两者都有,就像我在这里展示的那样。
文件以这种方式继续。而且,我有一个表格形式的数据库:
id itemName status
1 file NULL
等等……
现在,我应该浏览日志文件,并且对于创建的每个文件,或者如果存在错误,我应该使用适当的消息更新 DB 的最后一列:文件创建或错误。我想搜索字符串“PDF 文件已创建/错误”,然后获取文件名。
我尝试过各种方法,例如 pathinfo() 和 strpos。但是,我似乎无法理解我将如何完成它。
有人可以就我如何解决这个问题提供一些意见吗? txt 文件和数据库非常庞大。
注意:我提供了日志文件的第二个条目,以明确错误出现的格式不一致。我想知道我是否仍然可以通过不一致的错误格式来实现我应该达到的目标。 有人可以在再次阅读整个问题后提供帮助吗?与我第一次发布此内容相比,发生了很多变化。
【问题讨论】:
-
您可以在日志中发布该行的格式而不是“更多信息”吗?如果你需要文本处理,你必须先找到一个模式。
-
您能否发布至少一整行的错误信息?然后我们可以看到匹配的正则表达式。如果您可以在文件中发布大约 10 条不同的错误行,那就太好了
-
使文件格式更清晰。文件就这样继续下去。对于某些日期/时间,创建了多个 PDF 和错误。创建每个 PDF 后,都会删除 .indd 文件。