Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Author: Gamania
- //Telegram: @GiaNTizmO
- //Vk: @GiaNTizmO
- using System;
- using System.IO;
- using NLog;
- using NLog.Conditions;
- using NLog.Config;
- using NLog.Layouts;
- using NLog.Targets;
- namespace Example
- {
- internal class Program
- {
- public static Logger Logger = LogManager.GetCurrentClassLogger();
- private static void Main(string[] args)
- {
- #region NLog Initializator
- var config = new NLog.Config.LoggingConfiguration();
- LogManager.Configuration = new LoggingConfiguration();
- const string LayoutFile = @"[${date:format=yyyy-MM-dd HH\:mm\:ss}] [${logger}/${uppercase: ${level}}] [THREAD: ${threadid}] >> ${message} ${exception: format=ToString}";
- var consoleTarget = new ColoredConsoleTarget("Console Target")
- {
- Layout = @"${counter}|[${date:format=yyyy-MM-dd HH\:mm\:ss}] [${logger}/${uppercase: ${level}}] [THREAD: ${threadid}] >> ${message} ${exception: format=ToString}"
- };
- var logfile = new FileTarget();
- if (!Directory.Exists("logs"))
- Directory.CreateDirectory("logs");
- // Rules for mapping loggers to targets
- config.AddRule(LogLevel.Trace, LogLevel.Fatal, logfile);
- config.AddRule(LogLevel.Trace, LogLevel.Fatal, consoleTarget);
- logfile.CreateDirs = true;
- logfile.FileName = $"logs{Path.DirectorySeparatorChar}lastlog.log";
- logfile.AutoFlush = true;
- logfile.LineEnding = LineEndingMode.CRLF;
- logfile.Layout = LayoutFile;
- logfile.FileNameKind = FilePathKind.Absolute;
- logfile.ConcurrentWrites = false;
- logfile.KeepFileOpen = true;
- #region NLog Colors
- var Trace = new ConsoleRowHighlightingRule();
- Trace.Condition = ConditionParser.ParseExpression("level == LogLevel.Trace");
- Trace.ForegroundColor = ConsoleOutputColor.Yellow;
- consoleTarget.RowHighlightingRules.Add(Trace);
- var Debug = new ConsoleRowHighlightingRule();
- Debug.Condition = ConditionParser.ParseExpression("level == LogLevel.Debug");
- Debug.ForegroundColor = ConsoleOutputColor.DarkCyan;
- consoleTarget.RowHighlightingRules.Add(Debug);
- var Info = new ConsoleRowHighlightingRule();
- Info.Condition = ConditionParser.ParseExpression("level == LogLevel.Info");
- Info.ForegroundColor = ConsoleOutputColor.Green;
- consoleTarget.RowHighlightingRules.Add(Info);
- var Warn = new ConsoleRowHighlightingRule();
- Warn.Condition = ConditionParser.ParseExpression("level == LogLevel.Warn");
- Warn.ForegroundColor = ConsoleOutputColor.DarkYellow;
- consoleTarget.RowHighlightingRules.Add(Warn);
- var Error = new ConsoleRowHighlightingRule();
- Error.Condition = ConditionParser.ParseExpression("level == LogLevel.Error");
- Error.ForegroundColor = ConsoleOutputColor.DarkRed;
- consoleTarget.RowHighlightingRules.Add(Error);
- var Fatal = new ConsoleRowHighlightingRule();
- Fatal.Condition = ConditionParser.ParseExpression("level == LogLevel.Fatal");
- Fatal.ForegroundColor = ConsoleOutputColor.Black;
- Fatal.BackgroundColor = ConsoleOutputColor.DarkRed;
- consoleTarget.RowHighlightingRules.Add(Fatal);
- #endregion NLog Colors
- // Apply config
- NLog.LogManager.Configuration = config;
- #endregion NLog Initializator
- Logger.Trace("Hello from Gamania!");
- Logger.Debug("Hello from Gamania!");
- Logger.Info("Hello from Gamania!");
- Logger.Warn("Hello from Gamania!");
- Logger.Error("Hello from Gamania!");
- Logger.Fatal("Hello from Gamania!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement