我使用LogParser(非常棒)-o:SQL参数将值写入sql。目标表有一个DateTime字段 - 它与源文件中的典型行匹配。源文件由log4Net生成.csv文件,其中标题(log4Net需要)是:
<header value="DateTime,Thread,Level,Logger,Message,Exception " />
意味着第一行按字面意思,即字符串: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"
答案 0 :(得分:0)
如果您使用的是CSV输入格式,则可以使用“comment”参数来欺骗LP认为以DateTime开头的行是注释。例如:
-comment DateTime
答案 1 :(得分:0)
一般情况的答案是设置-e:global开关以限制您准备容忍的错误数。在上述情况下,明确设置-e:-1应该有所帮助。
-e: 指定在中止命令执行之前要在内部收集的最大解析错误数。 此全局开关的默认值为-1,这是一个特殊值,导致SQL引擎忽略所有解析错误,并仅报告在执行命令期间遇到的解析错误总数。