Advertisement
Guest User

Example NLog code Guide from Gamania

a guest
Apr 27th, 2021
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.92 KB | None | 0 0
  1. //Author: Gamania
  2. //Telegram: @GiaNTizmO
  3. //Vk: @GiaNTizmO
  4.  
  5. using System;
  6. using System.IO;
  7. using NLog;
  8. using NLog.Conditions;
  9. using NLog.Config;
  10. using NLog.Layouts;
  11. using NLog.Targets;
  12.  
  13. namespace Example
  14. {
  15.     internal class Program
  16.     {
  17.         public static Logger Logger = LogManager.GetCurrentClassLogger();
  18.  
  19.         private static void Main(string[] args)
  20.         {
  21.             #region NLog Initializator
  22.  
  23.             var config = new NLog.Config.LoggingConfiguration();
  24.             LogManager.Configuration = new LoggingConfiguration();
  25.             const string LayoutFile = @"[${date:format=yyyy-MM-dd HH\:mm\:ss}] [${logger}/${uppercase: ${level}}] [THREAD: ${threadid}] >> ${message} ${exception: format=ToString}";
  26.             var consoleTarget = new ColoredConsoleTarget("Console Target")
  27.             {
  28.                 Layout = @"${counter}|[${date:format=yyyy-MM-dd HH\:mm\:ss}] [${logger}/${uppercase: ${level}}] [THREAD: ${threadid}] >> ${message} ${exception: format=ToString}"
  29.             };
  30.  
  31.             var logfile = new FileTarget();
  32.  
  33.             if (!Directory.Exists("logs"))
  34.                 Directory.CreateDirectory("logs");
  35.  
  36.             // Rules for mapping loggers to targets
  37.             config.AddRule(LogLevel.Trace, LogLevel.Fatal, logfile);
  38.             config.AddRule(LogLevel.Trace, LogLevel.Fatal, consoleTarget);
  39.  
  40.             logfile.CreateDirs = true;
  41.             logfile.FileName = $"logs{Path.DirectorySeparatorChar}lastlog.log";
  42.             logfile.AutoFlush = true;
  43.             logfile.LineEnding = LineEndingMode.CRLF;
  44.             logfile.Layout = LayoutFile;
  45.             logfile.FileNameKind = FilePathKind.Absolute;
  46.             logfile.ConcurrentWrites = false;
  47.             logfile.KeepFileOpen = true;
  48.  
  49.             #region NLog Colors
  50.  
  51.             var Trace = new ConsoleRowHighlightingRule();
  52.             Trace.Condition = ConditionParser.ParseExpression("level == LogLevel.Trace");
  53.             Trace.ForegroundColor = ConsoleOutputColor.Yellow;
  54.             consoleTarget.RowHighlightingRules.Add(Trace);
  55.             var Debug = new ConsoleRowHighlightingRule();
  56.             Debug.Condition = ConditionParser.ParseExpression("level == LogLevel.Debug");
  57.             Debug.ForegroundColor = ConsoleOutputColor.DarkCyan;
  58.             consoleTarget.RowHighlightingRules.Add(Debug);
  59.             var Info = new ConsoleRowHighlightingRule();
  60.             Info.Condition = ConditionParser.ParseExpression("level == LogLevel.Info");
  61.             Info.ForegroundColor = ConsoleOutputColor.Green;
  62.             consoleTarget.RowHighlightingRules.Add(Info);
  63.             var Warn = new ConsoleRowHighlightingRule();
  64.             Warn.Condition = ConditionParser.ParseExpression("level == LogLevel.Warn");
  65.             Warn.ForegroundColor = ConsoleOutputColor.DarkYellow;
  66.             consoleTarget.RowHighlightingRules.Add(Warn);
  67.             var Error = new ConsoleRowHighlightingRule();
  68.             Error.Condition = ConditionParser.ParseExpression("level == LogLevel.Error");
  69.             Error.ForegroundColor = ConsoleOutputColor.DarkRed;
  70.             consoleTarget.RowHighlightingRules.Add(Error);
  71.             var Fatal = new ConsoleRowHighlightingRule();
  72.             Fatal.Condition = ConditionParser.ParseExpression("level == LogLevel.Fatal");
  73.             Fatal.ForegroundColor = ConsoleOutputColor.Black;
  74.             Fatal.BackgroundColor = ConsoleOutputColor.DarkRed;
  75.             consoleTarget.RowHighlightingRules.Add(Fatal);
  76.  
  77.             #endregion NLog Colors
  78.  
  79.             // Apply config
  80.             NLog.LogManager.Configuration = config;
  81.  
  82.             #endregion NLog Initializator
  83.  
  84.             Logger.Trace("Hello from Gamania!");
  85.             Logger.Debug("Hello from Gamania!");
  86.             Logger.Info("Hello from Gamania!");
  87.             Logger.Warn("Hello from Gamania!");
  88.             Logger.Error("Hello from Gamania!");
  89.             Logger.Fatal("Hello from Gamania!");
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement