-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathConsoleLogger.cs
95 lines (85 loc) · 3.03 KB
/
ConsoleLogger.cs
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using System;
using System.Reflection;
namespace TeleNet.OpenClient
{
public static class ConsoleLogger
{
static bool pausePrint = false;
public enum LogType
{
Default = 0,
Warning = 1,
Error = 2,
Info = 3,
SupperInfo = 4,
}
public static void PausePrint(bool? forcePausePrint = null)
{
if (forcePausePrint.HasValue)
pausePrint = forcePausePrint.Value;
else
{
if (pausePrint)
pausePrint = false;
else
pausePrint = true;
}
}
public static void Log(string msg, LogType logType = LogType.Default, bool save = false, bool writeLine = true, bool removeTime = false)
{
if (!pausePrint)
{
Console.ForegroundColor = logType == LogType.Error ? ConsoleColor.Red :
logType == LogType.Warning ? ConsoleColor.Yellow :
logType == LogType.SupperInfo ? ConsoleColor.DarkYellow :
logType == LogType.Info ? ConsoleColor.White : ConsoleColor.DarkGray;
if (writeLine)
Console.WriteLine((removeTime ? "" : (DateTime.Now.ToString("T") + " ")) + msg);
else
Console.Write(msg);
Console.ForegroundColor = ConsoleColor.DarkGray;
}
//if (save)
// switch (logType)
// {
// case LogType.Default:
// Serilog.Log.Information(msg);
// break;
// case LogType.Warning:
// Serilog.Log.Warning(msg);
// break;
// case LogType.Error:
// Serilog.Log.Error(msg);
// break;
// case LogType.Info:
// case LogType.SupperInfo:
// Serilog.Log.Information(msg);
// break;
// default:
// Serilog.Log.Debug(msg);
// break;
// }
}
public static void Debug(string msg, LogType logType = LogType.Default, bool writeLine = true)
{
#if DEBUG
Log(msg, logType, false, writeLine);
#else
if (saveAllLogs)
Log(msg, logType, true, writeLine);
#endif
}
public static void Print(object obj)
{
Console.ForegroundColor = ConsoleColor.Yellow;
Type t = obj.GetType(); // Where obj is object whose properties you need.
PropertyInfo[] pi = t.GetProperties();
Console.WriteLine("-----\t ObjectName:" + obj.GetType().Name + " \t--------");
foreach (PropertyInfo p in pi)
{
Console.WriteLine(p.Name + " : " + p.GetValue(obj));
}
Console.ForegroundColor = ConsoleColor.DarkGray;
}
}
}