Logparser对错误的容忍度

时间:2015-07-28 19:21:54

标签: logparser

我使用LogParser(非常棒)-o:SQL参数将值写入sql。目标表有一个DateTime字段 - 它与源文件中的典型行匹配。源文件由log4Net生成.csv文件,其中标题(log4Net需要)是:

<header value="DateTime,Thread,Level,Logger,Message,Exception&#13;&#10;" />

意味着第一行按字面意思,即字符串:DateTime,Thread,Level,Logger,Message,Exception LP就可以了。问题出现在log4Net重复那个标题行的地方。在这种情况下,LP会抛出下面粘贴的错误。在我的测试过程中,LP看起来足够容忍只有几行,并继续导入在有问题的标题行下面找到的行。

但有一点,LP会抛出&#39;太多错误......中止&#39; 因此,我需要说服LP忽略一行< strong> DateTime,Thread,Level,Logger,Message,Exception ,或者我需要将数据库的模式更改为varchar(我不想这样做)。

其他人如何处理这个问题?

Error while parsing field DateTime: Invalid TIMESTAMP value "DateTime":
  Invalid timestamp year digit 'D'
  LogFile "D:\home\site\wwwroot\App_Data\Logs\Web\log4netCSV.log", Row number
  27, Value "DateTime,Thread,Level,Logger,Mes"

2 个答案:

答案 0 :(得分:0)

如果您使用的是CSV输入格式,则可以使用“comment”参数来欺骗LP认为以DateTime开头的行是注释。例如:

-comment DateTime

答案 1 :(得分:0)

一般情况的答案是设置-e:global开关以限制您准备容忍的错误数。在上述情况下,明确设置-e:-1应该有所帮助。

  

-e:   指定在中止命令执行之前要在内部收集的最大解析错误数。   此全局开关的默认值为-1,这是一个特殊值,导致SQL引擎忽略所有解析错误,并仅报告在执行命令期间遇到的解析错误总数。