• ベストアンサー

イベントログ情報の取得順番について

PCよりEventLogを使いアプリケーションログ情報を取得は、出来るのですが、取得が古い順番になってしまします。 この取得を新しい物からにしたいのですが方法がわかりません。ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

環境が書いてませんが,VB.NETなら, http://dobon.net/vb/dotnet/system/geteventlogs.html これを参考に... Dim DT As DataTable = New DataTable DT.Columns.Add("Log", GetType(String)) DT.Columns.Add("EntryDate", GetType(String)) DT.Columns.Add("Entry", GetType(String)) Dim logs() As System.Diagnostics.EventLog logs = System.Diagnostics.EventLog.GetEventLogs() Dim log As System.Diagnostics.EventLog For Each log In logs Dim entry As System.Diagnostics.EventLogEntry For Each entry In log.Entries Dim row As DataRow = DT.NewRow() row("Log") = log.Log row("EntryDate") = entry.TimeWritten.ToString("yyyyMMddhhmmss") row("Entry") = entry.Message DT.Rows.Add(row) Next Next Dim sorted_dt() As DataRow = DT.Select("", "EntryDate") For Each r As DataRow In sorted_dt Trace.WriteLine(CType(r("Log"), String) + ":" + CType(r("EntryDate"), String) + ":" + CType(r("Entry"), String)) Next

0417
質問者

お礼

ご教授有難うございます。教えて頂いたのを試したのですが、やはり古い順に取得してしまいました。 以下に使用したソースを載せます。何か間違いがあればご指摘お願いします。 Public Shared Sub Main() Dim DT As DataTable = New DataTable DT.Columns.Add("Log", GetType(String)) DT.Columns.Add("EntryDate", GetType(String)) DT.Columns.Add("Entry", GetType(String)) Dim logs() As System.Diagnostics.EventLog logs = System.Diagnostics.EventLog.GetEventLogs() Dim log As System.Diagnostics.EventLog For Each log In logs Dim entry As System.Diagnostics.EventLogEntry For Each entry In log.Entries Dim row As DataRow = DT.NewRow() row("Log") = log.Log row("EntryDate") = entry.TimeWritten.ToString("yyyyMMddhhmmss") row("Entry") = entry.Message DT.Rows.Add(row) Next Next Dim sorted_dt() As DataRow = DT.Select("", "EntryDate") For Each r As DataRow In sorted_dt Trace.WriteLine(CType(r("Log"), String) + ":" + CType(r("EntryDate"), String) + ":" + CType(r("Entry"), String)) Next End Sub

その他の回答 (1)

回答No.2

お世話になります。 ごめんなさい... DT.Select("", "EntryDate DESC") でした…orz

関連するQ&A