【问题标题】:LogParser crashes without error in C#LogParser 在 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() 方法上死掉了。

标签: c# .net crash logparser


【解决方案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";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 2022-01-09
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多