LogParser 在 C# 中崩溃而没有错误
Posted
技术标签:
【中文标题】LogParser 在 C# 中崩溃而没有错误【英文标题】:LogParser crashes without error in C# 【发布时间】:2012-05-22 05:05:26 【问题描述】:我正在尝试在 C# 应用程序中实现 MS LogParser。这编译得很好,但在 logQuery.ExecuteBatch() 方法上莫名其妙地崩溃。 try/catch 块不会捕获它,除非我专门对 szQuery 进行了错误处理,这表明一切正常,我只是没有得到任何输出。
关于它为什么会崩溃或我可能会在哪里找到一些日志记录有什么想法吗?
使用系统; 使用 System.Collections.Generic; 使用 System.Linq; 使用 System.Text; 使用文件夹记录库; 使用 MSUtil;
命名空间 ConsoleApplication20 课堂节目 静态无效主要(字符串 [] 参数) //refLog = new BinaryInputFormat(); LogQueryClass logQuery = new LogQueryClass(); ICOMCSVOutputContext 输出 = 新 COMCSVOutputContextClass(); ILogParserInputContext parse = new BinaryInputFormat();
string szFileName = @"E:\Programming\FolderLogging\2012-05-13.fbl";
string szQuery = "SELECT Folder, User, Record, DB, TO_LOCALTIME(Timestamp) AS DateTime, Operation, Checked FROM " + szFileName + " ORDER BY DateTime DESC";
try
logQuery.ExecuteBatch(szQuery, parse, output);
catch
;
【问题讨论】:
尝试 catch(Exception ex) 看看你得到了什么异常并发布详细信息。 试过 - 它永远不会到达 catch 块,程序只是在 logQuery.ExecuteBatch() 方法上死掉了。 【参考方案1】:使用 Execute 代替 ExecuteBatch:
MSUtil.ILogRecordset RecordSet = logQuery.Execute(query, oInputFormat)
如果您想在示例代码中导出为 CSV,您需要通过添加 INTO output_file_name 来更改查询并运行 ExecuteBatch:
string szQuery = "SELECT Folder, User, Record, DB, TO_LOCALTIME(Timestamp) AS DateTime, Operation, Checked **INTO c:\out\out.csv** FROM " + szFileName + " ORDER BY DateTime DESC";
【讨论】:
以上是关于LogParser 在 C# 中崩溃而没有错误的主要内容,如果未能解决你的问题,请参考以下文章
C# 应用程序在已部署 (.exe) 版本中因缓冲区溢出而崩溃,但在 Visual Studio 中则不然
Swift - UIPickerView 使应用程序崩溃而没有错误
LogParser 查询仅从 IIS 日志中获取外部 IP 地址?