C# - 使用多个参数格式化事件日志查询
C# - Format event log query with multiple arguments
我有以下事件日志查询,我需要按事件 ID 和创建时间的特定日期范围进行过滤。这是我目前拥有的:
var _PRINTINGDOCUMENTEVENTID = "307";
var startTime = System.DateTime.Now.AddMinutes(-10);
var endTime = System.DateTime.Now
var query = string.Format("*[[System/EventID={0}] and [System[TimeCreated[@SystemTime >= {1}]]] and [System[TimeCreated[@SystemTime <= {2}]]]", _PRINTINGDOCUMENTEVENTID, startTime.ToUniversalTime().ToString("o"), endTime.ToUniversalTime().ToString("o"));)
var logQuery = new EventLogQuery("Microsoft-Windows-PrintService/Operational", PathType.LogName, query );
var reader = new EventLogReader(logQuery);
当我尝试调试事件日志查询时出现以下错误:
The specified query is invalid
这是调试时 query
值的样子:
"*[[System/EventID=307] and [System[TimeCreated[@SystemTime >=
2016-03-28T22:51:23.9082575Z]]] and [System[TimeCreated[@SystemTime <=
2016-03-28T23:01:23.9092576Z]]]"
我该如何解决这个问题?
您是否尝试过用刻度将格式化的 DateTimes 包围起来?
and [System[TimeCreated[@SystemTime >= '{1}']]]
我能够确定按事件 ID 和 TimeCreated 的日期范围过滤的正确格式
var eventId = "307";
var startTime = System.DateTime.Now.AddMinutes(-10);
var endTime = System.DateTime.Now;
var query = string.Format(@"*[System/EventID={0}] and *[System[TimeCreated[@SystemTime >= '{1}']]] and *[System[TimeCreated[@SystemTime <= '{2}']]]",
eventId,
startTime.ToUniversalTime().ToString("o"),
endTime.ToUniversalTime().ToString("o"));
我有以下事件日志查询,我需要按事件 ID 和创建时间的特定日期范围进行过滤。这是我目前拥有的:
var _PRINTINGDOCUMENTEVENTID = "307";
var startTime = System.DateTime.Now.AddMinutes(-10);
var endTime = System.DateTime.Now
var query = string.Format("*[[System/EventID={0}] and [System[TimeCreated[@SystemTime >= {1}]]] and [System[TimeCreated[@SystemTime <= {2}]]]", _PRINTINGDOCUMENTEVENTID, startTime.ToUniversalTime().ToString("o"), endTime.ToUniversalTime().ToString("o"));)
var logQuery = new EventLogQuery("Microsoft-Windows-PrintService/Operational", PathType.LogName, query );
var reader = new EventLogReader(logQuery);
当我尝试调试事件日志查询时出现以下错误:
The specified query is invalid
这是调试时 query
值的样子:
"*[[System/EventID=307] and [System[TimeCreated[@SystemTime >= 2016-03-28T22:51:23.9082575Z]]] and [System[TimeCreated[@SystemTime <= 2016-03-28T23:01:23.9092576Z]]]"
我该如何解决这个问题?
您是否尝试过用刻度将格式化的 DateTimes 包围起来?
and [System[TimeCreated[@SystemTime >= '{1}']]]
我能够确定按事件 ID 和 TimeCreated 的日期范围过滤的正确格式
var eventId = "307";
var startTime = System.DateTime.Now.AddMinutes(-10);
var endTime = System.DateTime.Now;
var query = string.Format(@"*[System/EventID={0}] and *[System[TimeCreated[@SystemTime >= '{1}']]] and *[System[TimeCreated[@SystemTime <= '{2}']]]",
eventId,
startTime.ToUniversalTime().ToString("o"),
endTime.ToUniversalTime().ToString("o"));