Beispiel #1
0
        /// <summary>
        /// Handles the Entry Written event of the <see cref="EventLog"/> instance.
        /// </summary>
        private void EventLogEntryWritten(object sender, EntryWrittenEventArgs e)
        {
            if (mIsActive && (string.IsNullOrEmpty(mSourceName) || Equals(e.Entry.Source, mSourceName)))
            {
                LogMessage newLogMsg = new LogMessageEventlog(
                    e.Entry
                    , ++mLogNumber);

                if (mLogHandler != null)
                {
                    mLogHandler.HandleMessage(newLogMsg);
                }
            }
        }
        /// <summary>
        /// Selects the given <paramref name="message"/>.
        /// </summary>
        /// <param name="message">The <see cref="LogMessage"/> o select</param>
        public bool SelectLogMessage(LogMessage message)
        {
            LogMessageEventlog logMessage = message as LogMessageEventlog;

            try
            {
                this.SuspendDrawing();

                if (logMessage != null)
                {
                    txtDataNumber.Text      = logMessage.Index.ToString();
                    txtDataLevel.Text       = logMessage.Level.ToString();
                    txtDataDateAndTime.Text = logMessage.Timestamp.Add(logMessage.TimeShiftOffset).ToString(Settings.Default.TimestampFormat);
                    txtDataLogger.Text      = logMessage.Logger;
                    txtDataCategory.Text    = logMessage.Category;
                    txtDataUsername.Text    = logMessage.Username;
                    txtDataInstaceId.Text   = logMessage.InstanceId.ToString();

                    if (logMessage.TimeShiftOffset.Milliseconds != 0)
                    {
                        txtDataDateAndTime.Text += string.Format(
                            Resources.strLoggerDetailsCtrlOffset
                            , logMessage.TimeShiftOffset.Milliseconds);
                    }

                    // Replace all known new line character combinations with the .net one.
                    txtDataMessage.Text = Regex.Replace(
                        logMessage.Message
                        , @"\r(?!\n)|(?<!\r)\n"
                        , Environment.NewLine);
                }
                else
                {
                    txtDataNumber.Text = message != null?message.Index.ToString() : string.Empty;

                    txtDataLevel.Text = message != null?message.Level.ToString() : string.Empty;

                    txtDataDateAndTime.Text = string.Empty;
                    txtDataLogger.Text      = message != null ? message.Logger : string.Empty;
                    txtDataCategory.Text    = string.Empty;
                    txtDataUsername.Text    = string.Empty;
                    txtDataInstaceId.Text   = string.Empty;
                    txtDataMessage.Text     = message != null?message.Message.Trim() : string.Empty;
                }

                pbxCopyNumber.Visible      = !string.IsNullOrEmpty(txtDataNumber.Text);
                pbxCopyLevel.Visible       = !string.IsNullOrEmpty(txtDataLevel.Text);
                pbxCopyLogger.Visible      = !string.IsNullOrEmpty(txtDataLogger.Text);
                pbxCopyDateAndTime.Visible = !string.IsNullOrEmpty(txtDataDateAndTime.Text);
                pbxCopyCategory.Visible    = !string.IsNullOrEmpty(txtDataCategory.Text);
                pbxCopyUsername.Visible    = !string.IsNullOrEmpty(txtDataUsername.Text);
                pbxCopyInstanceId.Visible  = !string.IsNullOrEmpty(txtDataInstaceId.Text);
                pbxCopyMessage.Visible     = !string.IsNullOrEmpty(txtDataMessage.Text);
            }
            finally
            {
                txtDataCategory.AdjustHeightToContent();
                txtDataMessage.AdjustHeightToContent();

                this.ResumeDrawing();
            }

            return(true);
        }