Ejemplo n.º 1
0
        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);
            }
        }