/// <summary> /// Setup the error log. /// </summary> private void SetupErrorLog() { Hierarchy hierarchy = (Hierarchy)log4net.LogManager.GetRepository(); hierarchy.Root.RemoveAllAppenders(); /*Remove any other appenders*/ //RollingFileAppender rollingFileAppender = new RollingFileAppender(); //rollingFileAppender.AppendToFile = true; //rollingFileAppender.LockingModel = new FileAppender.MinimalLock(); //rollingFileAppender.File = Pulse.Commons.GetErrorLogPath(); //rollingFileAppender.MaxFileSize = 1048576 * 1; // 1mb //rollingFileAppender.MaxSizeRollBackups = 1; //rollingFileAppender.StaticLogFileName = true; //PatternLayout pl = new PatternLayout(); //pl.ConversionPattern = "%-5level %date [%thread] %-22.22c{1} - %m%n"; //pl.ActivateOptions(); //rollingFileAppender.Layout = pl; //rollingFileAppender.ActivateOptions(); //log4net.Config.BasicConfigurator.Configure(rollingFileAppender); FileAppender fileAppender = new FileAppender(); fileAppender.AppendToFile = true; fileAppender.LockingModel = new FileAppender.MinimalLock(); fileAppender.File = Pulse.Commons.GetErrorLogPath(); PatternLayout pl = new PatternLayout(); string pulseVer = Pulse.Version.VERSION + Pulse.Version.VERSION_ADDITIONAL; string pulseDisplayVer = PulseDisplay.Version.VERSION + PulseDisplay.Version.VERSION_ADDITIONAL; string rtiVer = Core.Commons.VERSION + Core.Commons.RTI_VERSION_ADDITIONAL; pl.ConversionPattern = "%d [%2%t] %-5p [%-10c] Pulse:" + pulseVer + " RTI:" + rtiVer + " %m%n%n"; pl.ActivateOptions(); // If not Admin // Only log Error and Fatal errors if (!Pulse.Commons.IsAdmin()) { fileAppender.AddFilter(new log4net.Filter.LevelMatchFilter() { LevelToMatch = log4net.Core.Level.Error }); // Log Error fileAppender.AddFilter(new log4net.Filter.LevelMatchFilter() { LevelToMatch = log4net.Core.Level.Fatal }); // Log Fatal fileAppender.AddFilter(new log4net.Filter.DenyAllFilter()); // Reject all other errors } fileAppender.Layout = pl; fileAppender.ActivateOptions(); log4net.Config.BasicConfigurator.Configure(fileAppender); }
public CustomLogger(string path, string prefix, Level minLevel, Level maxLevel) { this.string_0 = prefix; this.level_0 = minLevel ?? Level.All; this.level_1 = maxLevel ?? Level.Emergency; Directory.CreateDirectory(path); PatternLayout layout = new PatternLayout("%-4utcdate [%thread] %-5level %logger{1} %ndc - %message%newline"); DateTime now = DateTime.Now; object[] args = new object[] { now.Year, now.Month, now.Day, now.Hour, now.Minute, Process.GetCurrentProcess().Id, path, this.string_0 }; this.FileName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), string.Format(@"{6}\{7} {5} {0:0000}-{1:00}-{2:00} {3:00}.{4:00}.txt", args)); FileAppender newAppender = new FileAppender { File = this.FileName, Layout = layout, LockingModel = new FileAppender.MinimalLock() }; LevelRangeFilter filter = new LevelRangeFilter { LevelMin = this.level_0, LevelMax = this.level_1, AcceptOnMatch = true }; newAppender.AddFilter(filter); layout.ActivateOptions(); newAppender.ActivateOptions(); AsyncAppender appender2 = new AsyncAppender(); appender2.AddAppender(newAppender); appender2.ActivateOptions(); log4net.Repository.Hierarchy.Hierarchy hierarchy1 = (log4net.Repository.Hierarchy.Hierarchy)LogManager.CreateRepository(this.string_0); hierarchy1.Root.AddAppender(appender2); hierarchy1.Configured = true; }
// Create a new file appender public static void ConfigureLog4net(string name, string fileName) { PatternLayout layout = new PatternLayout("%date{yyyy-MM-dd HH:mm:ss,fff} %-5level [%thread]: %message%newline"); layout.ActivateOptions(); LevelMatchFilter filter = new LevelMatchFilter(); filter.LevelToMatch = Level.All; filter.ActivateOptions(); var appender = new FileAppender(); appender.Name = name; appender.File = fileName; appender.AppendToFile = false; appender.Layout = layout; appender.AddFilter(filter); appender.ActivateOptions(); ILoggerRepository repository = LoggerManager.CreateRepository(name); BasicConfigurator.Configure(repository, appender); }
/// <summary> /// Setup the error log. /// </summary> private void SetupErrorLog() { bool isAdmin = false; Hierarchy hierarchy = (Hierarchy)log4net.LogManager.GetRepository(); hierarchy.Root.RemoveAllAppenders(); /*Remove any other appenders*/ FileAppender fileAppender = new FileAppender(); fileAppender.AppendToFile = true; fileAppender.LockingModel = new FileAppender.MinimalLock(); fileAppender.File = @"C:\RTI_Capture\ExporterErrorLog.log"; PatternLayout pl = new PatternLayout(); string pulseVer = System.Reflection.Assembly.GetEntryAssembly().GetName().Version.ToString(); //string rtiVer = System.Reflection.Assembly.LoadFrom("RTI.dll").GetName().Version.ToString(); string rtiVer = ""; pl.ConversionPattern = "%d [%2%t] %-5p [%-10c] Pulse:" + pulseVer + " RTI:" + rtiVer + " %m%n%n"; pl.ActivateOptions(); // If not Admin // Only log Error and Fatal errors if (!isAdmin) { fileAppender.AddFilter(new log4net.Filter.LevelMatchFilter() { LevelToMatch = log4net.Core.Level.Error }); // Log Error fileAppender.AddFilter(new log4net.Filter.LevelMatchFilter() { LevelToMatch = log4net.Core.Level.Fatal }); // Log Fatal fileAppender.AddFilter(new log4net.Filter.DenyAllFilter()); // Reject all other errors } fileAppender.Layout = pl; fileAppender.ActivateOptions(); log4net.Config.BasicConfigurator.Configure(fileAppender); }
/// <summary> /// Creates the appender. /// </summary> /// <param name="name">The name.</param> /// <param name="file">The file.</param> /// <param name="logLevel">The log level.</param> /// <returns> /// Returns a <see cref="IAppender" /> representing the appender. /// </returns> protected virtual FileAppender CreateAppender(string name, string file, LogLevel logLevel) { PatternLayout layout = new PatternLayout("%date{yyyy-MM-dd hh:mm:ss tt} - [%level]: %message%newline%exception"); LevelMatchFilter filter = new LevelMatchFilter(); filter.LevelToMatch = logLevel.ToLevel(); filter.ActivateOptions(); var appender = new FileAppender(); appender.Name = name; appender.File = file; appender.ImmediateFlush = true; appender.AppendToFile = _FileMode == FileMode.Append; appender.LockingModel = new FileAppender.MinimalLock(); appender.AddFilter(filter); appender.Layout = layout; appender.ActivateOptions(); return(appender); }
internal static void ReconfigureLogger() { string logFile = Path.Combine(AppSettings.AppSettingsPath, "ErrorLog.xml"); if (Log.Logger.Repository.Configured) { Log.Logger.Repository.Shutdown(); Log.Logger.Repository.ResetConfiguration(); } if (_clearLog) { try { File.Delete(logFile); } // ReSharper disable EmptyGeneralCatchClause catch (Exception) // ReSharper restore EmptyGeneralCatchClause { } _clearLog = false; } PatternLayout layout = new PatternLayout(); LevelRangeFilter filter = new LevelRangeFilter(); if (AppSettings.UseDebug) { layout.ConversionPattern = "%date{HH:mm:ss} [%thread] %-5level %logger.%method(%line) - %message%newline"; filter.LevelMin = Level.All; } else { layout.ConversionPattern = "%date{HH:mm:ss} %-5level %logger - %message%newline"; filter.LevelMin = Level.Warn; } filter.AcceptOnMatch = true; layout.ActivateOptions(); XmlLayoutSchemaLog4j xmlLayout = new XmlLayoutSchemaLog4j(true); RollingFileAppender fileAppender = new RollingFileAppender { PreserveLogFileNameExtension = true, StaticLogFileName = false, DatePattern = "yyyyMMdd", RollingStyle = RollingFileAppender.RollingMode.Date, ImmediateFlush = true, File = logFile, Encoding = new UTF8Encoding(true), Layout = xmlLayout }; fileAppender.AddFilter(filter); fileAppender.ActivateOptions(); FileAppender file = new FileAppender { Layout = layout, AppendToFile = true, Encoding = new UTF8Encoding(), File = logFile, ImmediateFlush = true }; file.AddFilter(filter); file.ActivateOptions(); BasicConfigurator.Configure(fileAppender); if (AppSettings.UseDebug) { Log.Info("Debug information enabled"); } }
/// <summary> /// This method is used to set up the log4net configuration files that will log the application. /// </summary> /// <param name="fileName">The name of the informatoin file.</param> private static void Setup(string fileName) { string logFilePath = "../../../Logs/"; Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); PatternLayout patternLayoutTC = new PatternLayout(); patternLayoutTC.ConversionPattern = "%date [%level] - %message%newline"; patternLayoutTC.ActivateOptions(); RollingFileAppender testCaseRoller = new RollingFileAppender(); testCaseRoller.AppendToFile = false; testCaseRoller.File = string.Format("{0}logfile-{1}-{2}.log", logFilePath, fileName, DateTime.Now.ToString("HHmm-MMdd-yyyy")); testCaseRoller.Layout = patternLayoutTC; testCaseRoller.DatePattern = "HH-MMdd-yyyy"; testCaseRoller.MaxSizeRollBackups = -1; testCaseRoller.MaximumFileSize = "1MB"; testCaseRoller.RollingStyle = RollingFileAppender.RollingMode.Composite; var filterTC = new log4net.Filter.LevelRangeFilter { LevelMin = Level.Debug, LevelMax = Level.Warn }; testCaseRoller.AddFilter(filterTC); testCaseRoller.ActivateOptions(); hierarchy.Root.AddAppender(testCaseRoller); PatternLayout ErrorPatternLayout = new PatternLayout(); ErrorPatternLayout.ConversionPattern = "%date [%level] %logger - message: %message%newline%newline"; ErrorPatternLayout.ActivateOptions(); FileAppender ErrorFiles = new FileAppender(); ErrorFiles.File = string.Format("{0}ErrorLogFile.log", logFilePath); ErrorFiles.AppendToFile = true; ErrorFiles.LockingModel = new FileAppender.MinimalLock(); ErrorFiles.Layout = ErrorPatternLayout; var filter = new log4net.Filter.LevelRangeFilter { LevelMin = Level.Error, LevelMax = Level.Fatal }; ErrorFiles.AddFilter(filter); ErrorFiles.ActivateOptions(); hierarchy.Root.AddAppender(ErrorFiles); MemoryAppender memory = new MemoryAppender(); memory.ActivateOptions(); hierarchy.Root.AddAppender(memory); hierarchy.Root.Level = Level.All; hierarchy.Configured = true; }