Ejemplo n.º 1
0
        // ------------------------------------------------------------------------------------------------------------



        // ------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Records a log entry into the specified log. Custom data can be passed as ILogEntryExt parameter.
        /// </summary>
        /// <param name="logName">The log name to record to.</param>
        /// <param name="message">The log message as a string.</param>
        /// <param name="extension">The custom data for the log entry (default is null).</param>
        /// <param name="sourceFilePath">The source file of the log entry (auto-generated).</param>
        /// <param name="sourceMethod">The source method of the log entry (auto-generated).</param>
        /// <param name="sourceLineNum">The source line number of the log entry (auto-generated).</param>
        // ------------------------------------------------------------------------------------------------------------
        public void RecordTo(string logName, string message, ILogEntryExt extension = null,
                             [CallerFilePath] string sourceFilePath = "",
                             [CallerMemberName] string sourceMethod = "",
                             [CallerLineNumber] int sourceLineNum   = 0)
        {
            if (!logging)
            {
                return;
            }

            // If log name is blank, record to default and return
            if (string.IsNullOrWhiteSpace(logName))
            {
                Record(message, extension, sourceFilePath, sourceMethod, sourceLineNum);
                return;
            }

            // Make sure the specified log queue exists
            if (!logQueues.ContainsKey(logName))
            {
                logQueues.TryAdd(logName, new ConcurrentQueue <LogEntry>());
            }

            // Add log entry to queue
            if (logQueues.TryGetValue(logName, out var queue))
            {
                queue.Enqueue(new LogEntry(sourceFilePath, sourceMethod, sourceLineNum, message, extension));
            }
        }
Ejemplo n.º 2
0
        // ------------------------------------------------------------------------------------------------------------


        // Constructor
        // ------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Creates a new log entry object.
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="method"></param>
        /// <param name="lineNumber"></param>
        /// <param name="message"></param>
        /// <param name="extension"></param>
        // ------------------------------------------------------------------------------------------------------------
        public LogEntry(string filename, string method, int lineNumber, string message, ILogEntryExt extension = null)
        {
            Timestamp  = DateTime.UtcNow;
            Filename   = filename;
            Method     = method;
            LineNumber = lineNumber;
            Message    = message;
            Extension  = extension;
        }
Ejemplo n.º 3
0
        // ------------------------------------------------------------------------------------------------------------



        // ------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Records a log entry into the default log. Custom data can be passed as ILogEntryExt parameter.
        /// </summary>
        /// <param name="message">The log message as a string.</param>
        /// <param name="extension">The custom data for the log entry (default is null).</param>
        /// <param name="sourceFilePath">The source file of the log entry (auto-generated).</param>
        /// <param name="sourceMethod">The source method of the log entry (auto-generated).</param>
        /// <param name="sourceLineNum">The source line number of the log entry (auto-generated).</param>
        // ------------------------------------------------------------------------------------------------------------
        public void Record(string message, ILogEntryExt extension = null,
                           [CallerFilePath] string sourceFilePath = "",
                           [CallerMemberName] string sourceMethod = "",
                           [CallerLineNumber] int sourceLineNum   = 0)
        {
            if (!logging)
            {
                return;
            }

            // Add log entry to queue
            if (logQueues.TryGetValue(defaultName, out var queue))
            {
                queue.Enqueue(new LogEntry(sourceFilePath, sourceMethod, sourceLineNum, message, extension));
            }
        }