93 lines
3.5 KiB
C#
93 lines
3.5 KiB
C#
using log4net;
|
|
using log4net.Appender;
|
|
using log4net.Core;
|
|
using log4net.Layout;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace VDash
|
|
{
|
|
public class Logger
|
|
{
|
|
public static void Setup()
|
|
{
|
|
var configLoc = ProfileManager.ConfigDirectory + @"\Logs\VRDash.log";
|
|
|
|
if (!Directory.Exists(Path.GetDirectoryName(configLoc)))
|
|
{
|
|
Directory.CreateDirectory(Path.GetDirectoryName(configLoc));
|
|
}
|
|
|
|
log4net.Repository.Hierarchy.Hierarchy hierarchy = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
|
|
|
|
PatternLayout patternLayout = new PatternLayout();
|
|
patternLayout.ConversionPattern = "%date [%thread] %level %logger - %message%newline%exception";
|
|
patternLayout.ActivateOptions();
|
|
|
|
hierarchy.Root.RemoveAllAppenders();
|
|
|
|
#region File Appender
|
|
RollingFileAppender roller = new RollingFileAppender();
|
|
roller.AppendToFile = true;
|
|
roller.File = configLoc;
|
|
roller.Layout = patternLayout;
|
|
roller.MaxSizeRollBackups = 10;
|
|
roller.MaximumFileSize = "10MB";
|
|
roller.RollingStyle = RollingFileAppender.RollingMode.Size;
|
|
roller.StaticLogFileName = true;
|
|
roller.ActivateOptions();
|
|
hierarchy.Root.AddAppender(roller);
|
|
#endregion
|
|
|
|
//MemoryAppender memory = new MemoryAppender();
|
|
//memory.ActivateOptions();
|
|
//hierarchy.Root.AddAppender(memory);
|
|
|
|
ColoredConsoleAppender coloredConsoleAppender = new ColoredConsoleAppender();
|
|
coloredConsoleAppender.AddMapping(new ColoredConsoleAppender.LevelColors()
|
|
{
|
|
Level = Level.Fatal,
|
|
ForeColor = ColoredConsoleAppender.Colors.White | ColoredConsoleAppender.Colors.HighIntensity,
|
|
BackColor = ColoredConsoleAppender.Colors.Red | ColoredConsoleAppender.Colors.HighIntensity
|
|
});
|
|
coloredConsoleAppender.AddMapping(new ColoredConsoleAppender.LevelColors()
|
|
{
|
|
Level = Level.Error,
|
|
ForeColor = ColoredConsoleAppender.Colors.Red | ColoredConsoleAppender.Colors.HighIntensity
|
|
});
|
|
coloredConsoleAppender.AddMapping(new ColoredConsoleAppender.LevelColors()
|
|
{
|
|
Level = Level.Warn,
|
|
ForeColor = ColoredConsoleAppender.Colors.Yellow
|
|
});
|
|
coloredConsoleAppender.AddMapping(new ColoredConsoleAppender.LevelColors()
|
|
{
|
|
Level = Level.Info,
|
|
ForeColor = ColoredConsoleAppender.Colors.Cyan
|
|
});
|
|
coloredConsoleAppender.AddMapping(new ColoredConsoleAppender.LevelColors()
|
|
{
|
|
Level = Level.Debug,
|
|
ForeColor = ColoredConsoleAppender.Colors.White
|
|
});
|
|
coloredConsoleAppender.Layout = patternLayout;
|
|
coloredConsoleAppender.ActivateOptions();
|
|
hierarchy.Root.AddAppender(coloredConsoleAppender);
|
|
hierarchy.Root.Level = Level.Debug;
|
|
hierarchy.Configured = true;
|
|
//BasicConfigurator.Configure(hierarchy);
|
|
}
|
|
}
|
|
public static class LoggerExtensions
|
|
{
|
|
public static ILog GetLogger(this object instance)
|
|
{
|
|
return LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
}
|
|
}
|
|
}
|