public static EventLogInput GetExceptionInfo(Exception exception, EventLogInput eventLog) { eventLog.StatusCode = GetErrorStatusCode(exception); eventLog.HelpLink = GetHelpLink(exception); eventLog.HResult = GetHResult(exception); eventLog.Message = GetMessage(exception); eventLog.InnerMessage = GetInnerException(exception); eventLog.Source = GetSource(exception); eventLog.StackTrace = GetStackTrace(exception); eventLog.TypeName = GetTypeName(exception); eventLog.Details = GetDetails(exception); return(eventLog); }
/// <summary> /// /// </summary> public static double Create(EventLogInput input) { var log = new EventLog { Action = input.Action, Controller = input.Controller, RouteValues = input.RouteValues, UserName = input.UserName, CreateDateTime = DateTime.Now, EventLogType = input.EventLogType, Ip = input.Ip, PathInfo = input.PathInfo, QueryString = input.QueryString, Url = input.Url, UserAgent = input.UserAgent, Cookies = input.Cookies, Form = input.Form, MachineName = input.MachineName, PhysicalPath = input.PhysicalPath, PhysicalApplicationPath = input.PhysicalApplicationPath, ServerVariables = input.ServerVariables, UserHostName = input.UserHostName, HttpMethod = input.HttpMethod, HttpHost = input.HttpHost, Protocol = input.Protocol, Port = input.Port, UrlReferer = input.UrlReferer, //ex Source = input.Source, StackTrace = input.StackTrace, HelpLink = input.HelpLink, HResult = input.HResult, StatusCode = input.StatusCode, Message = input.Message, InnerMessage = input.InnerMessage, Details = input.Details, TypeName = input.TypeName, }; using (var con = new EventLoggerContext()) { log = con.EventLogs.Add(log); con.SaveChanges(); } return(log.Id); }
static void Main(string[] args) { try { // Instantiate the LogQuery object LogQuery oLogQuery = new LogQuery(); // Instantiate the Event Log Input Format object EventLogInput eventInputFormat = new EventLogInput(); // When set to "FW", events are retrieved from the oldest to the // newest. When set to "BW", events are retrieved from the newest // to the oldest. eventInputFormat.direction = "FW"; // Event text messages often span multiple lines. When this parameter // is set to "ON", the EVT input format preserves readability of the // messages by removing carriage-return, line-feed, and multiple space // characters from the message text. // When this parameter is set to "OFF", the EVT input format returns // the original message text with no intervening post-processing. eventInputFormat.formatMessage = true; eventInputFormat.binaryFormat = "ASC"; eventInputFormat.stringsSep = ","; CSVOutput csvOutputFormat = new CSVOutput(); // ON: always write the header; // OFF: never write the header; // AUTO: write the header only when not appending to an existing file. csvOutputFormat.headers = "ON"; // Setting this parameter to "ON" causes the CSV output format to write // a tab character after each comma field separator, in order to // improve readability of the CSV output. Note that using tabs between // field values might generate output that is not compatible with // certain spreadsheet applications. csvOutputFormat.tabs = false; // ON: always enclose field values within double-quote characters; // OFF: never enclose field values within double-quote characters; // AUTO: enclose within double-quote characters only those field // values that contain comma (,) characters. csvOutputFormat.oDQuotes = "AUTO"; // This parameter specifies the date and/or time format to use when // formatting values of the TIMESTAMP data type. csvOutputFormat.oTsFormat = "yyyy-MM-dd"; // 0 is the system codepage, -1 is UNICODE. csvOutputFormat.oCodepage = -1; // 0: existing files are appended with the output; // 1: existing files are overwritten with the output; // 2: existing files are left intact, discarding the output. csvOutputFormat.fileMode = 1; /* * EventLog STRING Name of the Event Log or Event Log backup file * RecordNumber INTEGER Index of this event * TimeGenerated TIMESTAMP Event generated date/time (local time) * TimeWritten TIMESTAMP Event logged date/time (local time) * EventID INTEGER The ID of the event * EventType INTEGER The numeric type of the event * EventTypeName STRING The descriptive type of the event * EventCategory INTEGER The numeric category of the event * EventCategoryName STRING The descriptive category of the event * SourceName STRING The source that generated the event * Strings STRING The textual data * ComputerName STRING The name of the computer * SID STRING The Security Identifier associated with the event * Message STRING The full event message * Data STRING The binary data associated with the event */ string query = @"SELECT TOP 10 EventLog, RecordNumber, Message INTO " // Enclose path in single ticks to handle spaces. query += "'" + FullPathToCsv + "' FROM "; // Name of application Log, System, Security, Application, CustomLogName query += "System"; oLogQuery.ExecuteBatch(query, eventInputFormat, csvOutputFormat); } catch (System.Runtime.InteropServices.COMException ex) { Console.WriteLine("Unexpected error: " + ex.Message); } }