private void addConveters(PatternLayout patternLayout) { foreach (ConverterInfo conveterInfo in m_converters) { patternLayout.AddConverter(conveterInfo); } }
public string Parse(string pattern) { var l = new PatternLayout(pattern, _loggingEvent); foreach (var converter in _converters) { l.AddConverter(converter.Key, converter.Value); } return(l.Parse()); }
void ConfigureConverter() { #region RegisterConverter var layout = new PatternLayout { ConversionPattern = "%d %-5p %c - %m%n%exception_data" }; layout.AddConverter("exception_data", typeof(ExceptionDataConverter)); layout.ActivateOptions(); #endregion }
public static ILog GetLogger <T>() { ILog logger = LogManager.GetLogger(typeof(T).FullName); foreach (IAppender appender in logger.Logger.Repository.GetAppenders()) { PatternLayout layout = (appender as AppenderSkeleton).Layout as PatternLayout; layout.AddConverter("SYS", typeof(UserNamePatternConvert)); layout.ActivateOptions(); } return(logger); }
/// <summary> /// Builds a <see cref="PatternLayout"/> with the current configuration. /// </summary> /// <returns>A <see cref="PatternLayout"/> instance.</returns> protected override LayoutSkeleton CreateLayout() { var layout = new PatternLayout { ConversionPattern = BuildPattern(), }; if (_customConverter != null) { layout.AddConverter(_customConverter); } return(layout); }
public static void Setup() { if (Initialized) { return; } Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); // This ConversionPattern is slow because any location-based parameter in log4net is // slow. If it becomes an issue this might have to be wrapped into a compile time macro PatternLayout patternLayout = new PatternLayout() { ConversionPattern = "%date %-5level %filename: %line - %message%newline" }; patternLayout.AddConverter("filename", typeof(FileNamePatternConverter)); patternLayout.ActivateOptions(); string homeDir = Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%"); RollingFileAppender roller = new RollingFileAppender { AppendToFile = false, File = Path.Combine(homeDir, "sw2urdf_logs", "sw2urdf.log"), Layout = patternLayout, MaxSizeRollBackups = 5, MaximumFileSize = "10MB", RollingStyle = RollingFileAppender.RollingMode.Size, StaticLogFileName = true }; roller.ActivateOptions(); hierarchy.Root.AddAppender(roller); MemoryAppender memory = new MemoryAppender(); memory.ActivateOptions(); hierarchy.Root.AddAppender(memory); hierarchy.Root.Level = Level.Info; hierarchy.Configured = true; Initialized = true; ILog logger = LogManager.GetLogger( MethodBase.GetCurrentMethod().DeclaringType); logger.Info("\n" + String.Concat(Enumerable.Repeat("-", 80))); logger.Info("Logging commencing for SW2URDF exporter"); logger.Info("Commit version " + Versioning.Version.GetCommitVersion()); logger.Info("Build version " + Versioning.Version.GetBuildVersion()); }
public void TestNamedPatternConverterWidthoutPrecisionShouldReturnFullName() { var stringAppender = new StringAppender(); var layout = new PatternLayout(); layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter)); layout.ConversionPattern = "%message-as-name"; layout.ActivateOptions(); stringAppender.Layout = layout; var rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); var log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern"); log1.Info("NoDots"); Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("One.Dot"); Assert.AreEqual("One.Dot", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("Tw.o.Dots"); Assert.AreEqual("Tw.o.Dots", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("TrailingDot."); Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info(".LeadingDot"); Assert.AreEqual(".LeadingDot", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); // empty string and other evil combinations as tests for of-by-one mistakes in index calculations log1.Info(string.Empty); Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("."); Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("x"); Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); }
public static void LoadRollingFileAppender(string name, string appendToFile, string datePattern, string file, string maximumFileSize, string maxSizeRollBackups, string staticLogFileName, string conversionPattern) { RollingFileAppender appender = new RollingFileAppender(); appender.AppendToFile = Convert.ToBoolean(appendToFile); appender.Name = name; appender.DatePattern = datePattern; appender.File = file; appender.RollingStyle = RollingFileAppender.RollingMode.Composite; appender.MaximumFileSize = maximumFileSize; appender.MaxSizeRollBackups = Convert.ToInt32(maxSizeRollBackups); appender.StaticLogFileName = Convert.ToBoolean(staticLogFileName); PatternLayout patternLayout = new PatternLayout(); patternLayout.AddConverter(LogConstants.Ip, typeof(IpPatternConverter)); patternLayout.AddConverter(LogConstants.AppId, typeof(AppIdPatternConverter)); patternLayout.ConversionPattern = conversionPattern; patternLayout.ActivateOptions(); appender.Layout = patternLayout; //选择UTF8编码,确保中文不乱码。 appender.Encoding = Encoding.UTF8; appender.ActivateOptions(); BasicConfigurator.Configure(appender); }
public static void ConsoleSetup(this ILog aLogger, bool aFile) { Hierarchy lHier = (Hierarchy)LogManager.GetRepository(); var patternLayout = new PatternLayout(); patternLayout.ConversionPattern = "%date; [%thread] %-5level; %logger; %message%newline"; patternLayout.AddConverter("%date; [%thread] %-5level; %logger; %message%newline", typeof(PatternConverter)); patternLayout.ActivateOptions(); var lConsole = new ColoredConsoleAppender(); lConsole.AddMapping(new ColoredConsoleAppender.LevelColors { Level = Level.Info, ForeColor = ColoredConsoleAppender.Colors.HighIntensity & ColoredConsoleAppender.Colors.White }); lConsole.AddMapping(new ColoredConsoleAppender.LevelColors { Level = Level.Warn, ForeColor = ColoredConsoleAppender.Colors.Red & ColoredConsoleAppender.Colors.HighIntensity }); lConsole.Layout = patternLayout; lConsole.ActivateOptions(); lHier.Root.AddAppender(lConsole); if (aFile) { var lFile = new RollingFileAppender { AppendToFile = false, MaxFileSize = 10 * 1024 * 1024 * 8, LockingModel = new FileAppender.MinimalLock(), RollingStyle = RollingFileAppender.RollingMode.Size, MaxSizeRollBackups = 5, StaticLogFileName = true, File = @"Log.txt", Layout = patternLayout }; lFile.ActivateOptions(); lHier.Root.AddAppender(lFile); } lHier.Root.Level = Level.Info; lHier.Configured = true; BasicConfigurator.Configure(lHier); }
public void TestAddingCustomPattern() { var stringAppender = new StringAppender(); var layout = new PatternLayout(); layout.AddConverter("TestAddingCustomPattern", typeof(TestMessagePatternConverter)); layout.ConversionPattern = "%TestAddingCustomPattern"; layout.ActivateOptions(); stringAppender.Layout = layout; var rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); var log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern"); log1.Info("TestMessage"); Assert.AreEqual("TestMessage", stringAppender.GetString(), "%TestAddingCustomPattern not registered"); }
public App() { InitializeComponent(); log4net.Repository.Hierarchy.Hierarchy hierarchy = (Hierarchy)log4net.LogManager.GetRepository(Assembly.GetAssembly(typeof(App))); var patternLayout = new PatternLayout(); patternLayout.ConversionPattern = "[%thread] %-5level %logger %memory - %message"; patternLayout.AddConverter(new ConverterInfo() { Name = "memory", Type = typeof(MemoryConverterInfo) }); patternLayout.ActivateOptions(); var cca = new ConsoleAppender(); cca.Layout = patternLayout; cca.ActivateOptions(); hierarchy.Root.AddAppender(cca); hierarchy.Root.Level = Level.Debug; hierarchy.Configured = true; { var config = new NLog.Config.LoggingConfiguration(); // Targets where to log to: File and Console var logconsole = new NLog.Targets.ConsoleTarget("logconsole"); // Rules for mapping loggers to targets // config.AddRule(LogLevel.Warn, LogLevel.Fatal, logconsole); // Apply config NLog.LogManager.Configuration = config; } MainPage = new MainPage(); }
public void Setup() { SetIsDebugFlag(); Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); hierarchy.Root.RemoveAllAppenders(); PatternLayout patternLayout = new PatternLayout(); patternLayout.AddConverter(new ConverterInfo { Name = "fileNameNoPath", Type = typeof(FileNameNoPathConverter) } ); patternLayout.ConversionPattern = "%-30d %-10level %fileNameNoPath : %L %m%n"; patternLayout.ActivateOptions(); RollingFileAppender rollingFileAppender = new RollingFileAppender(); rollingFileAppender.LockingModel = new FileAppender.MinimalLock(); rollingFileAppender.AppendToFile = true; rollingFileAppender.File = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Vulnerator\V6Log.txt"; rollingFileAppender.Layout = patternLayout; rollingFileAppender.MaxSizeRollBackups = 5; rollingFileAppender.RollingStyle = RollingFileAppender.RollingMode.Once; rollingFileAppender.StaticLogFileName = true; rollingFileAppender.ActivateOptions(); hierarchy.Root.AddAppender(rollingFileAppender); log4net.Config.BasicConfigurator.Configure(rollingFileAppender); if (IsDebug) { hierarchy.Root.Level = Level.All; } else { hierarchy.Root.Level = Level.Info; } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); var patternLayout = new PatternLayout(); patternLayout.AddConverter("rfc3339", typeof(Rfc3339Converter)); patternLayout.ConversionPattern = "%rfc3339 %level %message%newline"; patternLayout.ActivateOptions(); var a = new TextboxAppender(this.textBoxProgress) { Layout = patternLayout, Threshold = Level.Debug, Name = textBoxProgress.Name, }; a.ActivateOptions(); appender = a; ((Hierarchy)log4net.LogManager.GetRepository()).Root.AddAppender(appender); }
/// <summary> /// Sets up the log4net LogManager with the desired default values /// </summary> public void Setup() { try { SetIsDebugFlag(); Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); hierarchy.Root.RemoveAllAppenders(); PatternLayout patternLayout = new PatternLayout(); patternLayout.AddConverter(new ConverterInfo { Name = "fileNameNoPath", Type = typeof(FileNameNoPathConverter) } ); // patternLayout.ConversionPattern = "%-30d %-15level %-40fileNameNoPath %-20L %m%n"; patternLayout.ConversionPattern = "%-30d %-15level %m%n"; patternLayout.ActivateOptions(); RollingFileAppender rollingFileAppender = GenerateRollingFileAppender(patternLayout); hierarchy.Root.AddAppender(rollingFileAppender); log4net.Config.BasicConfigurator.Configure(rollingFileAppender); if (_isDebug) { hierarchy.Root.Level = Level.All; } else { hierarchy.Root.Level = Level.Info; } } catch (Exception exception) { #if DEBUG throw exception; #endif } }
/// <summary> /// Parse a single member arrangement /// </summary> /// <param name="str"></param> /// <returns></returns> public IArrangement ParseArangement(string str) { var match = s_singleMatcher.Match(str); var name = match.Groups["Name"].Value; var op = match.Groups["Op"].Value; var value = match.Groups["Value"].Value; var option = match.Groups["Option"].Value; var convs = GetConverterContext().Get(); if (!match.Success) { name = String.Empty; op = "|"; value = str; } name = s_nameClean.Replace(name, Clean); if (op == String.Empty) { if (value == String.Empty) { op = ":"; value = name; } else { op = "|"; } } IArrangement ar; switch (op) { case "!": // custom arrangements, removals, defaults or swaps switch (name) { case "CLEAR": case "REMOVE": // removals ar = new RemovalArrangement(value); break; case "DEFAULT": // defaults ar = new DefaultArrangement(value); break; default: // custom arrangements var type = Type.GetType(name, false); if (type == null) { throw new Exception(String.Format("Arrangement type not found: {0}", name)); } var arrangement = Activator.CreateInstance(type) as IArrangement; if (arrangement == null) { throw new Exception(String.Format("Arrangement type is not IArrangement: {0}", type)); } arrangement.SetOption(value); ar = arrangement; break; } break; case ":": // just rename members ar = new Member() { Name = name, Converters = convs, Option = new Member() { Name = value, Converters = convs } }; break; case "|": // run a nested pattern layout value = s_brackClean.Replace(value, Brackets); value = s_nameClean.Replace(value, Clean); var pl = new PatternLayout(value); if (convs != null) { foreach (var conv in convs) { pl.AddConverter(conv); } } ar = new Member() { Name = name, Converters = convs, Option = pl }; break; case "%": // run a nested pattern layout var pl2 = new PatternLayout(string.Format("%{0}{{{1}}}", value, option)); if (convs != null) { foreach (var conv in convs) { pl2.AddConverter(conv); } } ar = new Member() { Name = name, Converters = convs, Option = pl2 }; break; case "=": // a member with an option ar = new Member() { Name = name, Converters = convs, Option = value }; break; default: throw new Exception(String.Format("Unknown arrangement: '{0}{1}'", name, op)); } if (ar is IOptionHandler) { ((IOptionHandler)ar).ActivateOptions(); } return(ar); }