コード例 #1
0
        public static void RecordEvent(string eventSource, LogEventType eventType, string eventMessage)
        {
            if (!dicInitializationState.ContainsKey(eventSource) || !dicInitializationState[eventSource])
            {
                Initialize(eventSource);
            }
            if (DateTime.Now.Day != dicLoggingDate[eventSource].Day)
            {
                ReopenLoggingStream(eventSource);
            }

            string eventTypeString = GetEventTypeString(eventType);

            try
            {
                string logEntry = string.Format
                        (
                            "{0}   [{1}]{2}{3}\r\n",
                            DateTime.Now.ToString(eventDateTimeFormat),
                            eventTypeString,
                            string.Empty.PadRight(eventTypeColumnWidth - eventTypeString.Length),
                            eventMessage
                        );

                WriteStringToLogFile(eventSource, logEntry);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(string.Format("Failed to record event: {0}", ex));
            }
        }
コード例 #2
0
ファイル: Logger.cs プロジェクト: permyakov/janus
 public void Log(LogEventType et, string message)
 {
     LastMessage =
         "[{0:dd.MM.yyyy HH:mm:ss}] {1}".FormatStr(DateTime.Now, message);
     if (OnLog != null)
         OnLog(this, new LogEventArgs(this, new LogItem(et, LastMessage)));
 }
コード例 #3
0
ファイル: Logger.cs プロジェクト: abladon/canvas
 public Logger(IEnumerable<TextWriter> logWriters, IEnumerable<TextWriter> errorWriters,
     LogEventType lowestEventTypeForWorkflowLog = LogEventType.Information,
     LogEventType lowestEventTypeForWorkflowError = LogEventType.Warning) : this(false, lowestEventTypeForWorkflowLog, lowestEventTypeForWorkflowError)
 {
     _logWriters.AddRange(logWriters);
     _errorWriters.AddRange(errorWriters);
 }
コード例 #4
0
ファイル: LogEvent.cs プロジェクト: nuxleus/flexwikicore
 public LogEvent(string ipAddress, string user, string topic, LogEventType type, ILogSink sink)
 {
     IP = ipAddress;
     User = user;
     Topic = topic;
     Type = type;
     Sink = sink;
 }
コード例 #5
0
ファイル: LogEntry.cs プロジェクト: rock-walker/Eline
 /// <summary>
 /// Initializes a new instance of the LoggerEntry class.
 /// </summary>
 /// <param name="context"></param>
 public LogEntry(LogEventType eventType, string source, int id, string format, params object[] data)
 {
     _eventType = eventType;
     _source = source;
     _id = id;
     _format = format;
     _data = data;
 }
コード例 #6
0
        /// <summary>
        /// Logs the specified event.
        /// </summary>
        /// <param name="logEvent">The event (object) to log.</param>
        /// <param name="type">Event type</param>
        public static void Log(object logEvent, LogEventType type = LogEventType.Information)
        {
            if (Loggers == null) return;

            foreach (var logger in Loggers)
                if (logger.TypeFilter == LogEventType.Undefined || ((logger.TypeFilter & type) == type))
                    logger.Log(logEvent, type);
        }
コード例 #7
0
 public LogEvent CreateEvent(string ipAddress, string user, string topic, LogEventType type)
 {
     lock (_lock)
     {
         LogEvent answer = new LogEvent(ipAddress, user, topic, type, _sink);
         return answer;
     }
 }
コード例 #8
0
ファイル: LogEvent.cs プロジェクト: anelson/multitask
 public LogEvent(String sourceName, Object sender, BuildEventArgs args, LogEventType eventType)
 {
     _sourceName = sourceName;
     _sender = sender;
     _args = args;
     _eventType = eventType;
     _exception = null;
 }
コード例 #9
0
ファイル: LogHelper.cs プロジェクト: rsdn/janus
		public static void Log(
			this IServiceProvider provider,
			LogEventType eventType,
			string message)
		{
			var svc = provider.GetService<ILogger>();
			svc?.Log(eventType, message);
		}
コード例 #10
0
ファイル: LogEvent.cs プロジェクト: CyranoChen/Arsenalcn
 public static void Logging(LogEventType let, string message, string errorStackTrace, string errorParam)
 {
     var l = new LogEvent();
     l.EventType = let;
     l.Message = message;
     l.ErrorStackTrace = errorStackTrace;
     l.ErrorParam = errorParam;
     l.Insert();
 }
 public static void RecordLog(string title, 
     LogEventType eventType, 
     LogPriority priority, 
     object extraObject,
     System.Exception e)
 {
     LogManager lm = new LogManager();
     lm.Record(title, eventType, priority, extraObject, e);
 }
コード例 #12
0
ファイル: Logger.cs プロジェクト: alexbikfalvi/InetAnalytics
        /// <summary>
        /// Adds a new event to the event log for the current date/time.
        /// </summary>
        /// <param name="level">The log event level.</param>
        /// <param name="type">The log event type.</param>
        /// <param name="source">The event source.</param>
        /// <param name="message">The event message.</param>
        /// <param name="parameters">The event parameters.</param>
        /// <param name="exception">The event exception.</param>
        /// <param name="subevents">The list of subevents.</param>
        /// <returns>The log event.</returns>
        public LogEvent Add(
			LogEventLevel level,
			LogEventType type,
			string source,
			string message,
			object[] parameters = null,
			Exception exception = null,
			List<LogEvent> subevents = null
			)
        {
            LogEvent evt;

            // Create the event.
            evt = new LogEvent(level, type, DateTime.Now, source, message, parameters, exception, subevents);

            // Compute the file name.
            string fileName = string.Format(this.filePattern, evt.Timestamp.ToUniversalTime().Year, evt.Timestamp.ToUniversalTime().Month, evt.Timestamp.ToUniversalTime().Day);

            try
            {
                XDocument xml;
                // Check whether there exists a file for the event date.
                if (!this.logs.TryGetValue(evt.Timestamp.Date, out xml))
                {
                    // If the file exists.
                    if (File.Exists(fileName))
                    {
                        // Read the XML from the file.
                        try { xml = XDocument.Load(fileName); }
                        catch (Exception) { xml = new XDocument(new XElement("log", new XAttribute("date", evt.Timestamp.ToUniversalTime().Date.ToString(CultureInfo.InvariantCulture)))); }
                    }
                    else
                    {
                        // Create a new empty XML.
                        xml = new XDocument(new XElement("log", new XAttribute("date", evt.Timestamp.ToUniversalTime().Date.ToString(CultureInfo.InvariantCulture))));
                    }
                    // Add the XML to the logs list.
                    this.logs.Add(evt.Timestamp.Date, xml);
                }
                // Add the event to the XML file.
                xml.Root.Add(evt.Xml);
            }
            catch (Exception ex)
            {
                evt.Logger = string.Format("Could not save the event {0} to the log \"{1}\" ({2}).", evt.Timestamp, fileName, ex.Message);
            }

            // Raise the event for this log event.
            if (this.EventLogged != null) this.EventLogged(this, new LogEventArgs(evt));

            return evt;
        }
コード例 #13
0
ファイル: LogManager.cs プロジェクト: pavlya/WebContacts
        private void LogEvent(string username, string message, LogEventType logEvent)
        {
            DateTime now = DateTime.Now;
            LogModel logModel = new LogModel();
            string combinedMessage = message + " for user: " + username;

            logModel.date = now;
            logModel.description = combinedMessage;
            logModel.Username = username;
            logModel.logEvent = logEvent;

            db.Logs.Add(logModel);
            db.SaveChanges();
        }
コード例 #14
0
ファイル: LogginService.cs プロジェクト: kvuchkov/nbulib
 public void WriteEvent(LogEventType type, string message, int indent = 0)
 {
     using (FileStream fs = getLogFile())
     {
         using (var writer = new StreamWriter(fs))
         {
             var now = DateTime.Now;
             writer.Write("===========[BeginLogEvent:{0} on {1}]===========\n", type.ToString(), now);
             for (int i = 0; i < indent; i++)
                 writer.Write("\t");
             writer.Write(message);
             writer.Write("\n-----------[EndLogEvent:{0} on {1}]-----------\n", type.ToString(), now);
         }
     }
 }
コード例 #15
0
        public static void LogThis(string ErrorMessage, LogEventType LogEvent, string BadgeNumber, string AgencyName)
        {
            bool LogMessage = true;

            switch ( LogEvent)
            {
                case LogEventType.Error:
                    break;
                case LogEventType.Warning:
                    break;
                case LogEventType.Info:
                    break;
                case LogEventType.InMessages:
                    LogMessage = false;
                    break;
                case LogEventType.OutMessages:
                    LogMessage = false;
                    break;
                case LogEventType.MessagePath:
                    LogMessage = false;
                    break;
            }

            if (LogMessage == false)
                return;

            try
            {
                if (ErrorMessage.Length > 1000)
                    ErrorMessage = ErrorMessage.Substring(0, 999);

                if (BadgeNumber.Length > 23)
                    BadgeNumber = BadgeNumber.Substring(0, 22);

                if (AgencyName.Length > 60)
                    AgencyName = AgencyName.Substring(0, 59);

                AgencyName = "";

                string SQL = "INSERT INTO i9SysLog (LogDateTime, LogDescription, LogType, AgencyName, BadgeNumber) VALUES ('" + DateTime.Now.ToString() + "', " + SQLUtility.SQLString(ErrorMessage) + ", " + SQLUtility.SQLString(LogEvent.ToString()) + ", " + SQLUtility.SQLString(AgencyName) + ", " + SQLUtility.SQLString(BadgeNumber) + ")";
                SQLAccess da = new SQLAccess();
                da.ExecuteSQL(SQL);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #16
0
        /// <summary>
        /// Logs the specified exception.
        /// </summary>
        /// <param name="leadingText">The leading text (inserted before the actual exception detail).</param>
        /// <param name="exception">The exception.</param>
        /// <param name="type">Event type</param>
        public static void Log(string leadingText, Exception exception, LogEventType type = LogEventType.Exception)
        {
            if (Loggers == null) return;

            var exceptionText = leadingText + "\r\n\r\n" + ExceptionHelper.GetExceptionText(exception);

            foreach (var logger in Loggers)
                if (logger.TypeFilter == LogEventType.Undefined || ((logger.TypeFilter & type) == type))
                {
                    var exceptionLogger = logger as IExceptionLogger;
                    if (exceptionLogger != null)
                        exceptionLogger.Log(leadingText, exception, type);
                    else
                        logger.Log(exceptionText, type);
        }
        }
コード例 #17
0
ファイル: EmailLogger.cs プロジェクト: sat1582/CODEFramework
 /// <summary>
 /// Logs the specified event (text).
 /// </summary>
 /// <param name="logEvent">The event (text).</param>
 /// <param name="type">The event type.</param>
 /// <remarks>
 /// Log types are mapped to the following system event types (in this order):
 /// LogEventType.Critical   = EventLogEntryType.Error
 /// LogEventType.Error      = EventLogEntryType.FailureAudit
 /// LogEventType.Exception  = EventLogEntryType.FailureAudit
 /// LogEventType.Warning    = EventLogEntryType.Warning
 /// LogEventType.Success    = EventLogEntryType.SuccessAudit
 ///    other:               = EventLogEntryType.Information
 /// </remarks>
 public override void Log(string logEvent, LogEventType type)
 {
     if (_recipients.Count == 0) throw new ArgumentOutOfRangeException("You must specify at least 1 recipient email address");
     var subject = Enum.GetName(typeof(LogEventType), type) + ": Log Entry for " + _appName;
     ThreadPool.QueueUserWorkItem(c =>
     {
         foreach (var recipient in _recipients)
         {
             try
             {
                 EmailHelper.SendEmail(_senderName, _senderEmail, recipient.Name, recipient.EmailAddress, subject, logEvent,
                     null, _mailServer, _portNumber, _userName, _password);
             }
             catch (Exception ex)
             { 
                 System.Diagnostics.Debug.WriteLine(ExceptionHelper.GetExceptionText(ex)); 
             }
         }
     });
 }
コード例 #18
0
ファイル: Logger.cs プロジェクト: abladon/canvas
        public Logger(bool includeStandardOutput = true, LogEventType lowestEventTypeForWorkflowLog = LogEventType.Information, LogEventType lowestEventTypeForWorkflowError = LogEventType.Warning)
        {
            if (includeStandardOutput)
            {
                _logWriters.Add(Console.Out);
                _errorWriters.Add(Console.Error);
            }

            if (lowestEventTypeForWorkflowError <= lowestEventTypeForWorkflowLog)
                throw new ArgumentException("Lowest severity level for error log must be greater than lowest severity level for standard log");
            _lowestEventTypeForWorkflowLog = lowestEventTypeForWorkflowLog;
            _lowestEventTypeForWorkflowError = lowestEventTypeForWorkflowError;

            //make sure 
            _cancellationTokenSource.Token.Register(() => _readyToFlushLog.TrySetResult(true));
            _cancellationTokenSource.Token.Register(() => _readyToFlushError.TrySetResult(true));

            //start our logging tasks
            _logTask = RunLogger(true);
            _errorTask = RunLogger(false);
        }
コード例 #19
0
 private static string GetEventTypeString(LogEventType eventType)
 {
     string result;
     switch (eventType)
     {
         case LogEventType.Trace:
             result = "TRACE";
             break;
         case LogEventType.Warning:
             result = "WARNING";
             break;
         case LogEventType.Error:
             result = "ERROR";
             break;
         case LogEventType.Exception:
             result = "EXCEPTION";
             break;
         default:
             result = "INFO";
             break;
     }
     return result;
 }
        /// <summary>
        /// 记录流程异常日志
        /// </summary>
        /// <param name="entity"></param>
        public void Record(string title, 
            LogEventType eventType, 
            LogPriority priority, 
            object extraObject,
            System.Exception e)
        {
            try
            {
                var log = new LogEntity();
                log.EventTypeID = (int)eventType;
                log.Priority = (int)priority;
                log.Severity = priority.ToString().ToUpper();
                log.Title = title;
                log.Timestamp = DateTime.Now;
                log.Message = e.Message;
                log.StackTrace = e.StackTrace.Length > 4000 ? e.StackTrace.Substring(0, 4000): e.StackTrace;
                if (e.InnerException != null)
                {
                    log.InnerStackTrace = e.InnerException.StackTrace.Length > 4000 ?
                        e.InnerException.StackTrace.Substring(0, 4000) : e.InnerException.StackTrace;
                }

                if (extraObject != null)
                {
                    var jsonData = JsonSerializer.SerializeToString(extraObject);
                    log.RequestData = jsonData.Length > 2000 ? jsonData.Substring(0, 2000) : jsonData;
                }

                //线程池添加日志记录
                ThreadPool.QueueUserWorkItem(new WaitCallback(Insert), log);
            }
            catch
            {
                //如果记录日志发生异常,不做处理
                ;
            }
        }
コード例 #21
0
        /// <summary>
        /// Logs an event to the ILogTarget
        /// </summary>
        /// <param name="eventType">LogEventType of the event</param>
        /// <param name="message">corresponding message</param>
        public static void LogEvent(LogEventType eventType, string message)
        {
            if (Properties.Settings.Default.USER_LOGGING_ENABLED)
            {
                if (!HasValidTarget())
                    throw new LoggingException(ERROR_TARGET_NULL);

                if (_builder == null)
                    _builder = new StringBuilder();
                else
                    _builder.Clear();

                _builder.Append('[' + eventType.ToString() + ']');

                if (_writeTime)
                    _builder.Append('[' + DateTime.Now.ToLongTimeString() + ']');
                else
                    _builder.Append('\t');

                _builder.Append("\t" + message);

                WriteToTargets(_builder.ToString());
            }
        }
コード例 #22
0
ファイル: Logger.cs プロジェクト: Yortw/ScribeSharp
 public void WriteEvent(string eventName, LogEventSeverity eventSeverity, LogEventType eventType, params KeyValuePair <string, object>[] properties)
 {
     WriteEvent(eventName, eventSeverity, eventType, null, properties);
 }
コード例 #23
0
ファイル: Logger.cs プロジェクト: Yortw/ScribeSharp
        public void WriteEventWithSource(string eventName, LogEventSeverity eventSeverity = LogEventSeverity.Information, LogEventType eventType = LogEventType.ApplicationEvent,
                                         Exception exception = null,
#if SUPPORTS_CALLERATTRIBUTES
                                         [System.Runtime.CompilerServices.CallerFilePath]
#endif
                                         string source = null,
#if SUPPORTS_CALLERATTRIBUTES
                                         [System.Runtime.CompilerServices.CallerMemberName]
#endif
                                         string sourceMethod = null,
#if SUPPORTS_CALLERATTRIBUTES
                                         [System.Runtime.CompilerServices.CallerLineNumber]
#endif
                                         int sourceLineNumber = -1,
                                         params KeyValuePair <string, object>[] properties)
        {
            WriteEventWithExplicitSource(eventName, eventSeverity, eventType, source, sourceMethod, sourceLineNumber, properties, exception);
        }
コード例 #24
0
ファイル: ILogger.cs プロジェクト: abladon/canvas
        /// <summary>
        /// Create a log message
        /// </summary>
        /// <param name="severity">Controls if and where the message is logged</param>
        /// <param name="message"></param>
        /// <param name="source"></param>
        /// <param name="exception"></param>
        /// <param name="addTag">Prepend severity info to message? Default if severity >= Warning</param>
        public LogEntry(LogEventType severity, string message, string source,
            Exception exception, bool? addTag=null)
        {
            if (string.IsNullOrEmpty(message))
                throw new ArgumentException($"{nameof(message)} cannot be null or empty");
            if (severity < LogEventType.Debug || severity > LogEventType.Critical)
                throw new ArgumentOutOfRangeException(nameof(severity));

            this.Severity = severity;
            if (addTag ?? (severity >= LogEventType.Warning))
                this.Message = $"{severity.ToString().ToUpper()}: {message}";
            else
                this.Message = message;
            this.Source = source;
            this.Exception = exception;
        }
コード例 #25
0
ファイル: GameHost.cs プロジェクト: PsychoTeras/RatKing
 private void WriteLog(LogEventType eventType, string msg)
 {
     LFactory.Instance.Write(eventType, msg);
 }
コード例 #26
0
ファイル: Logger.cs プロジェクト: Yortw/ScribeSharp
        private void WriteEventWithExplicitSource(string eventName, LogEventSeverity eventSeverity, LogEventType eventType, string source, string sourceMethod, int sourceLineNumber, KeyValuePair <string, object>[] properties, Exception exception)
        {
            try
            {
                if (!IsEnabled || !(_FirstChanceFilter?.ShouldLog(eventName, eventSeverity, eventType, source, sourceMethod) ?? true))
                {
                    return;
                }

                using (var pooledLogEvent = _EntryPool.Take())
                {
                    var logEvent = pooledLogEvent.Value;
                    InitialiseLogEvent(eventName, eventSeverity, eventType, properties, exception, logEvent);

                    UnsafeWriteEvent(logEvent, source, sourceMethod, sourceLineNumber);
                }
            }
            catch (LogException lex)
            {
                if (_ErrorHandler.ReportError(lex) == LoggingErrorPolicy.Rethrow)
                {
                    throw;
                }
            }
            catch (Exception ex) when(!ex.ShouldRethrowImmediately())
            {
                var wrappedException = new LogException(ex.Message, ex);

                if (_ErrorHandler.ReportError(wrappedException) == LoggingErrorPolicy.Rethrow)
                {
                    throw wrappedException;
                }
            }
        }
コード例 #27
0
ファイル: Logger.cs プロジェクト: Yortw/ScribeSharp
        private void InitialiseLogEvent(string eventName, LogEventSeverity eventSeverity, LogEventType eventType, KeyValuePair <string, object>[] properties, Exception exception, LogEvent logEvent)
        {
            logEvent.DateTime      = _LogClock.Now;
            logEvent.EventName     = eventName ?? String.Empty;
            logEvent.EventSeverity = eventSeverity;
            logEvent.EventType     = eventType;
            logEvent.Exception     = exception;

            RenderProperties(properties, logEvent);
        }
コード例 #28
0
 public static void Trace(this ILogger log, LogEventType type, Exception err)
 {
     log.Trace(type, err, null);
 }
コード例 #29
0
 public static void Trace(this ILogger log, LogEventType type, string format, params object[] args)
 {
     if (log != null)
         log.Write(type, 0, format, args);
 }
コード例 #30
0
 public static void Trace(this ILogger log, LogEventType type, Exception err, string message)
 {
     if (log != null && log.ShouldTrace(type))
         log.Trace(LogEventType.Error,
             (new StringBuilder()).Append(message ?? "Exception").Append(" : ").FormatException(err).ToString());
 }
コード例 #31
0
 public static void Trace(this ILogger log, LogEventType type, string message)
 {
     if (log != null)
         log.Write(type, 0, message);
 }
コード例 #32
0
ファイル: ToolApi.cs プロジェクト: alexbikfalvi/InetAnalytics
 // Log.
 /// <summary>
 /// Logs an event for the specified toolset.
 /// </summary>
 /// <param name="level">The log event level.</param>
 /// <param name="type">The log event type.</param>
 /// <param name="message">The event message.</param>
 /// <param name="parameters">The event parameters.</param>
 /// <param name="exception">The event exception.</param>
 public LogEvent Log(LogEventLevel level, LogEventType type, string message, object[] parameters = null, Exception exception = null)
 {
     return this.application.Log.Add(
         level,
         type,
         @"Toolbox\{0}\{1}".FormatWith(this.toolset.Name, this.tool.Name),
         message,
         parameters,
         exception
         );
 }
コード例 #33
0
ファイル: Logger.cs プロジェクト: sat1582/CODEFramework
 /// <summary>
 /// Serializes the exception and returns the serialzied text
 /// </summary>
 /// <param name="exception">The exception.</param>
 /// <param name="type">The log info type.</param>
 /// <returns>Serialized exception information</returns>
 /// <remarks>This method is designed to be overridden in subclasses</remarks>
 protected virtual string GetSerializedExceptionText(Exception exception, LogEventType type)
 {
     return ExceptionHelper.GetExceptionText(exception);
 }
コード例 #34
0
ファイル: Logger.cs プロジェクト: sat1582/CODEFramework
        /// <summary>
        /// Logs the specified event (text).
        /// </summary>
        /// <param name="logEvent">The event (text).</param>
        /// <param name="type">The event type.</param>
        /// <remarks>
        /// Milos log types are mapped to the following system event types (in this order):
        /// LogEventType.Critical   = EventLogEntryType.Error
        /// LogEventType.Error      = EventLogEntryType.FailureAudit
        /// LogEventType.Exception  = EventLogEntryType.FailureAudit
        /// LogEventType.Warning    = EventLogEntryType.Warning
        /// LogEventType.Success    = EventLogEntryType.SuccessAudit
        ///    other:               = EventLogEntryType.Information
        /// </remarks>
        public override void Log(string logEvent, LogEventType type)
        {
            // We make sure the source exists
            if (!EventLog.SourceExists(InternalEventLog.Source, InternalEventLog.MachineName))
                EventLog.CreateEventSource(new EventSourceCreationData(InternalEventLog.Source, InternalEventLog.Log) {MachineName = InternalEventLog.MachineName});

            // We are ready to log the event
            if (type == LogEventType.Undefined)
                InternalEventLog.WriteEntry(logEvent);
            else
            {
                EventLogEntryType systemType;
                if ((type & LogEventType.Critical) == LogEventType.Critical) systemType = EventLogEntryType.Error;
                else if (((type & LogEventType.Error) == LogEventType.Error) || ((type & LogEventType.Exception) == LogEventType.Exception)) systemType = EventLogEntryType.FailureAudit;
                else if ((type & LogEventType.Warning) == LogEventType.Warning) systemType = EventLogEntryType.Warning;
                else if ((type & LogEventType.Success) == LogEventType.Success) systemType = EventLogEntryType.SuccessAudit;
                else systemType = EventLogEntryType.Information;
                InternalEventLog.WriteEntry(logEvent, systemType);
            }
        }
コード例 #35
0
ファイル: Logger.cs プロジェクト: Yortw/ScribeSharp
 public void WriteEvent(string eventName, LogEventSeverity eventSeverity, LogEventType eventType, Exception exception, params KeyValuePair <string, object>[] properties)
 {
     WriteEventWithExplicitSource(eventName, eventSeverity, eventType, null, null, -1, properties, exception);
 }