- ベストアンサー
イベントログ情報の取得順番について
PCよりEventLogを使いアプリケーションログ情報を取得は、出来るのですが、取得が古い順番になってしまします。 この取得を新しい物からにしたいのですが方法がわかりません。ご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
環境が書いてませんが,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
その他の回答 (1)
- naganaga_001
- ベストアンサー率71% (172/242)
お世話になります。 ごめんなさい... DT.Select("", "EntryDate DESC") でした…orz
お礼
ご教授有難うございます。教えて頂いたのを試したのですが、やはり古い順に取得してしまいました。 以下に使用したソースを載せます。何か間違いがあればご指摘お願いします。 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