Git Repository Public Repository

CPE_learningsite

URLs

Copy to Clipboard

This repository has no backups
This repository's network speed is throttled to 100KB/sec

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using log4net;

namespace CPE.Utilities
{
    /// <summary>
    /// Wrapper for Log4Net - uses SerialKey and Calling Class and Method.
    /// NOTE: Uses Asynchronous logging
    /// </summary>
    public static class LogWrapper
    {
        //Methods in Descending order of importance
        public static void Debug(string message, params object[] parameters)
        {
            string format;
            var logger = FormatMessage(message, parameters, out format);
            Task.Run(() => logger.DebugFormat(format));
        }
        public static void Info(string message, params object[] parameters)
        {
            string format;
            var logger = FormatMessage(message, parameters, out format);
            Task.Run(() => logger.InfoFormat(format));
        }
        public static void Warn(string message, params object[] parameters)
        {
            string format;
            var logger = FormatMessage(message, parameters, out format);
            //logger.WarnFormat(format);
            Task.Run(() => logger.WarnFormat(format));
        }
        public static void Error(string message, params object[] parameters)
        {
            string format;
            var logger = FormatMessage(message, parameters, out format);
            Task.Run(() => logger.ErrorFormat(format));
        }
        public static void Fatal(string message, params object[] parameters)
        {
            string format;
            var logger = FormatMessage(message, parameters, out format);
            Task.Run(() => logger.FatalFormat(format));
        }

        private static ILog FormatMessage(string message, object[] parameters, out string format)
        {
            var frame = new StackFrame(2);
            var method = frame.GetMethod();
            var className = "";
            try
            {
                className = method.DeclaringType.ToString();
            }
            catch { }
            var methodName = method.Name;
            var logger = LogManager.GetLogger(className); //should be cached if exists already
            var parsedMsg = "";
            try
            {
                parsedMsg = string.Format(message, parameters);
            }
            catch (Exception)
            {
                //developer sent invalid string
                parsedMsg = "_String parse error.";
            }
            System.IO.File.AppendAllText(@"D:\Log_files\CpeApi_SimpleLogger.log", "[LogWrapper][FormatMessage] " + DateTime.UtcNow.ToString("yyyyMMdd_HHmmss") + "] " + methodName + parsedMsg + Environment.NewLine);
            format = string.Format("[{0}] ; {1}", methodName, parsedMsg);
            return logger;
        }
    }
}

Commits for CPE_learningsite/CPE/CPE.Utilities/LogWrapper.cs

Diff revisions: vs.
Revision Author Commited Message
4cd176 ... v.shishlov Fri 27 Aug, 2021 14:33:17 +0000

initial commit