public static TraceAppender CreateTraceAppender()
 {
     var tracer = new TraceAppender { Layout = PatternLayout };
     tracer.ActivateOptions();
     PatternLayout.ActivateOptions();
     return tracer;
 }
示例#2
0
文件: Logger.cs 项目: dionata/wfmvc
        static Logger()
        {
            Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
            TraceAppender tracer = new TraceAppender();
            PatternLayout patternLayout = new PatternLayout();

            patternLayout.ConversionPattern = LOG_PATTERN;
            patternLayout.ActivateOptions();

            tracer.Layout = patternLayout;
            tracer.ActivateOptions();
            hierarchy.Root.AddAppender(tracer);

            RollingFileAppender roller = new RollingFileAppender();
            roller.Layout = patternLayout;
            roller.AppendToFile = true;
            roller.RollingStyle = RollingFileAppender.RollingMode.Size;
            roller.MaxSizeRollBackups = 4;
            roller.MaximumFileSize = "32768KB";
            roller.StaticLogFileName = true;
            roller.File = "log\\Log.log";
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);

            hierarchy.Root.Level = Level.All;
            hierarchy.Configured = true;
        }
        /// <summary>
        /// Configures the log4net environment
        /// </summary>
        private void Setup(Level logLevel)
        {
            Directory.CreateDirectory(_logFolder);


            var hierarchy = (Hierarchy)LogManager.GetRepository();

            // Log to a file
            var roller = new RollingFileAppender();
            roller.AppendToFile = false;
            roller.File = _logFile;
            roller.Layout = new PatternLayout("%date %type.%method [%-5level] - %message%newline");
            roller.MaxSizeRollBackups = 5;
            roller.RollingStyle = RollingFileAppender.RollingMode.Size;
            roller.StaticLogFileName = true;
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);

            // Log to the visual studio console
            var appender = new TraceAppender();
            appender.ActivateOptions();
            appender.Layout = new PatternLayout("%method (%line) %date [%-5level] - %message%newline");
            hierarchy.Root.AddAppender(appender);

            hierarchy.Root.Level = logLevel;
            hierarchy.Configured = true;
        }
示例#4
0
        public DefaultLogWrapper(string logname, IConfig config)
        {
            this.logname = logname;

            Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
            hierarchy.Clear();

            TraceAppender tracer = new TraceAppender();
            PatternLayout patternLayout = new PatternLayout();

            patternLayout.ConversionPattern = "%t (%-5level) - %m%n";
            patternLayout.ActivateOptions();

            tracer.Layout = patternLayout;
            tracer.ActivateOptions();
            hierarchy.Root.AddAppender(tracer);

            RollingFileAppender roller = new RollingFileAppender();
            roller.Layout = patternLayout;
            roller.AppendToFile = true;
            roller.RollingStyle = RollingFileAppender.RollingMode.Size;
            roller.MaxSizeRollBackups = 4;
            roller.MaximumFileSize = "100KB";
            roller.StaticLogFileName = true;
            roller.File = Path.Combine(config.IndexFolder, "totalrecall-" + this.logname + ".log");
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);

            hierarchy.Root.Level = Level.All;
            hierarchy.Configured = true;
        }
示例#5
0
        static Logger()
        {
            var hierarchy = (Hierarchy)LogManager.GetRepository();
            var tracer = new TraceAppender();
            var patternLayout = new PatternLayout {ConversionPattern = LOG_PATTERN};

            patternLayout.ActivateOptions();

            tracer.Layout = patternLayout;
            tracer.ActivateOptions();
            hierarchy.Root.AddAppender(tracer);

            var roller = new RollingFileAppender
                             {
                                 Layout = patternLayout,
                                 AppendToFile = true,
                                 RollingStyle = RollingFileAppender.RollingMode.Size,
                                 MaxSizeRollBackups = 4,
                                 MaximumFileSize = "10240KB",
                                 StaticLogFileName = true,
                                 File = FilePath + @"\f1speed-log.txt"
                             };
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);

            hierarchy.Root.Level = Level.Debug;
            hierarchy.Configured = true;
        }
        public void SetUpFixture()
        {
            Util.LogLog.InternalDebugging = true;

            Hierarchy hierarchy = (Hierarchy) LogManager.GetRepository();
            PatternLayout patternLayout = new PatternLayout { ConversionPattern = "%d [%t] %-5p %m%n" };

            patternLayout.ActivateOptions();

            TraceAppender tracer = new TraceAppender { Layout = patternLayout };

            tracer.ActivateOptions();

            hierarchy.Root.AddAppender(tracer);

            ConsoleAppender console = new ConsoleAppender
                                          {
                                              Name = "console",
                                              Layout = patternLayout,
                                              Target = "Console.Out",
                                              Threshold = Level.All,
                                          };

            console.ActivateOptions();

            hierarchy.Root.AddAppender(console);

            RollingFileAppender rollingFile = new RollingFileAppender
                                                  {
                                                      Name = "file",
                                                      Layout = patternLayout,
                                                      AppendToFile = true,
                                                      RollingStyle = RollingFileAppender.RollingMode.Size,
                                                      MaxSizeRollBackups = 4,
                                                      MaximumFileSize = "100KB",
                                                      StaticLogFileName = true,
                                                      LockingModel = new FileAppender.MinimalLock(),
                                                      File = "logs\\logFile.txt",
                                                  };

            rollingFile.ActivateOptions();

            hierarchy.Root.AddAppender(rollingFile);

            RollbarAppender rollbar = new RollbarAppender
                                          {
                                              Name = "rollbar",
                                              Layout = patternLayout,
                                              AccessToken = "3203880e148b43b4b1a14430fb41957a",
                                              Threshold = Level.Notice,
                                          };

            rollbar.ActivateOptions();

            hierarchy.Root.AddAppender(rollbar);

            hierarchy.Root.Level = Level.All;
            hierarchy.Configured = true;
        }
示例#7
0
        static Log()
        {
            Config = LogConfigManager.Config;
            PatternLayout layout;
            AppenderSkeleton appender;

            switch (Config.Type)
            {
                case LogType.ConfigFromLogFile:
                    XmlConfigurator.ConfigureAndWatch(new FileInfo(Config.FileName));
                    break;
                case LogType.RollingFile:
                case LogType.RollingFileAndWinEventLog:
                    layout = new PatternLayout(Config.Pattern);
                    appender = new RollingFileAppender
                    {
                        File = Config.FileName,
                        AppendToFile = true,
                        RollingStyle = RollingFileAppender.RollingMode.Composite,
                        MaxSizeRollBackups = Config.MaxNumberOfBackupFiles,// App.Config.IsDebugConfiguration ? -1 : 100,
                        MaximumFileSize = Config.RollingFileMaximumFileSize,
                        DatePattern = Config.RollingFileDatePattern,
                        Layout = layout,
                        LockingModel = new FileAppender.MinimalLock()
                    };
                    layout.ActivateOptions();
                    appender.ActivateOptions();
                    BasicConfigurator.Configure(appender);
                    break;
                default:
                    if (Config.Type == LogType.WinEventLog ||
                        Config.Type == LogType.RollingFileAndWinEventLog)
                    {
                        layout = new PatternLayout(Config.Pattern);
                        appender = new EventLogAppender
                        {
                            LogName = App.Config.Name,
                            Layout = layout
                        };
                        layout.ActivateOptions();
                        appender.ActivateOptions();
                        BasicConfigurator.Configure(appender);
                    }
                    else if (Config.Type == LogType.VisualStudioTraceOutput)
                    {
                        layout = new PatternLayout(Config.Pattern);
                        appender = new TraceAppender
                        {
                            ImmediateFlush = true
                        };
                        layout.ActivateOptions();
                        appender.ActivateOptions();
                        appender.Layout = layout;
                        BasicConfigurator.Configure(appender);
                    }
                    break;
            }
        }
        /// <summary>
        /// Configures a trace appender for log4net so that log output 
        /// is written to the test output.
        /// </summary>
        public static void ConfigureLoggingToTrace() {
            Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
            hierarchy.Root.RemoveAllAppenders();

            TraceAppender appender = new TraceAppender();
            PatternLayout patternLayout = new PatternLayout();
            patternLayout.ConversionPattern = "%d %-5p [%-10c]   %m%n%n";
            patternLayout.ActivateOptions();
            appender.Layout = patternLayout;
            appender.ActivateOptions();

            log4net.Config.BasicConfigurator.Configure(appender);
        }
示例#9
0
        public AfterglowLogger(string applicationDataFolder, string loggingFile, int loggingLevel = LoggingLevels.LOG_LEVEL_ERROR)
        {
            string loggingPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), applicationDataFolder);
            if (!System.IO.Directory.Exists(loggingPath))
            {
                System.IO.Directory.CreateDirectory(loggingPath);
            }

            loggingPath = System.IO.Path.Combine(loggingPath, Path.GetDirectoryName(loggingFile));
            if (!System.IO.Directory.Exists(loggingPath))
            {
                System.IO.Directory.CreateDirectory(loggingPath);
            }
            
            string logFilePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), applicationDataFolder, loggingFile);

            _layout.ConversionPattern = DefaultPattern;
            _layout.ActivateOptions();
            
            _logger = LogManager.GetLogger(typeof(AfterglowLogger));

            Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
            TraceAppender tracer = new TraceAppender();
            PatternLayout patternLayout = new PatternLayout();

            patternLayout.ConversionPattern = LOG_PATTERN;
            patternLayout.ActivateOptions();

            tracer.Layout = patternLayout;
            tracer.ActivateOptions();
            hierarchy.Root.AddAppender(tracer);

            RollingFileAppender roller = new RollingFileAppender();
            roller.Layout = patternLayout;
            roller.AppendToFile = true;
            roller.RollingStyle = RollingFileAppender.RollingMode.Size;
            roller.LockingModel = new log4net.Appender.FileAppender.MinimalLock();
            roller.MaxSizeRollBackups = 4;
            roller.MaximumFileSize = "100KB";
            roller.StaticLogFileName = true;
            roller.File = logFilePath;
            roller.Name = "RollingFileAppender";
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);

            LoggingLevel = loggingLevel;

            hierarchy.Configured = true;
        }
 internal static TraceAppender BuildTraceLog(ListeningLogOptions options)
 {
     var layout = new PatternLayout
     {
         ConversionPattern = options.Pattern
     };
     layout.ActivateOptions();
     var appender = new TraceAppender
     {
         Layout = layout,
         ImmediateFlush = options.ImmediateFlush
     };
     appender.ActivateOptions();
     return appender;
 }
示例#11
0
        public void DefaultCategoryTest()
        {
            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
            Trace.Listeners.Clear();
            Trace.Listeners.Add(categoryTraceListener);

            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());

            TraceAppender traceAppender = new TraceAppender();
            traceAppender.Layout = new SimpleLayout();
            traceAppender.ActivateOptions();

            BasicConfigurator.Configure(rep, traceAppender);

            ILog log = LogManager.GetLogger(rep.Name, GetType());
            log.Debug("Message");

            Assert.AreEqual(
                GetType().ToString(),
                categoryTraceListener.Category);
        }
示例#12
0
        public void MethodNameCategoryTest()
        {
            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();
            Trace.Listeners.Clear();
            Trace.Listeners.Add(categoryTraceListener);

            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());

            TraceAppender traceAppender = new TraceAppender();
            PatternLayout methodLayout = new PatternLayout("%method");
            methodLayout.ActivateOptions();
            traceAppender.Category = methodLayout;
            traceAppender.Layout = new SimpleLayout();
            traceAppender.ActivateOptions();

            BasicConfigurator.Configure(rep, traceAppender);

            ILog log = LogManager.GetLogger(rep.Name, GetType());
            log.Debug("Message");

            Assert.AreEqual(
                System.Reflection.MethodInfo.GetCurrentMethod().Name,
                categoryTraceListener.Category);
        }
示例#13
0
        static Logger()
        {
            ThreadContext.Properties["Identifier"] = Application.Current.GetIdentifier();
            ThreadContext.Properties["UserId"] = "[Unknown]";
            ThreadContext.Properties["Session"] = Application.Current.GetSessionId();

            var hiearchy = (Hierarchy)LogManager.GetRepository();

            var patternLayout = new PatternLayout { ConversionPattern = LogPattern };
            patternLayout.ActivateOptions();

            var tracer = new TraceAppender {Layout = patternLayout};
            tracer.ActivateOptions();
            hiearchy.Root.AddAppender(tracer);

            var roller = new RollingFileAppender
                {
                    Layout = patternLayout,
                    AppendToFile = true,
                    RollingStyle = RollingFileAppender.RollingMode.Once,
                    MaxSizeRollBackups = -1,
                    MaximumFileSize = "100KB",
                    StaticLogFileName = false,
                    File = PathUtilities.LogFile,
                    Threshold = Level.Debug,
                    LockingModel = new FileAppender.MinimalLock()
                };

            roller.ActivateOptions();
            roller.RollingStyle = RollingFileAppender.RollingMode.Once;
            roller.LockingModel = new FileAppender.MinimalLock();
            hiearchy.Root.AddAppender(roller);

            hiearchy.Root.Level = Level.Debug;
            hiearchy.Configured = true;
        }
示例#14
0
        public static void Initialize(string logDir, string fileName, string category)
        {
            _logFile = System.IO.Path.Combine(logDir, fileName);

            Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
            TraceAppender tracer = new TraceAppender();
            PatternLayout patternLayout = new PatternLayout();

            patternLayout.ConversionPattern = LOG_PATTERN;
            patternLayout.ActivateOptions();

            tracer.Layout = patternLayout;
            tracer.ActivateOptions();
            hierarchy.Root.AddAppender(tracer);

            RollingFileAppender roller = new RollingFileAppender();
            roller.Layout = patternLayout;
            roller.AppendToFile = true;
            roller.RollingStyle = RollingFileAppender.RollingMode.Size;
            roller.MaxSizeRollBackups = 4;
            roller.MaximumFileSize = "100KB";
            roller.StaticLogFileName = true;
            roller.File = _logFile;
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);

            hierarchy.Root.Level = Level.All;
            hierarchy.Configured = true;

            _log = log4net.LogManager.GetLogger(category);
        }
示例#15
0
        /// <summary>
        ///    Utility function to initialize logging.  This will check for a log configuration file
        ///    and use that to configure the logging.  If the log configuration file is not available,
        ///    this method will check the default log configuration file.  If that file is not 
        ///    available either, this method will create a primitive configuration that writes logs to
        ///    the filename specified as the defaultLogfileName
        /// </summary>
        /// <param name="configFilename">the path (can be relative) to the log config file</param>
        /// <param name="defaultConfigFilename">the path (can be relative) to the default log config file</param>
        /// <param name="defaultLogfileName">the filename to use for logging if the config files are not found</param>
        public static void InitializeLogging(string configFilename, string defaultConfigFilename, string defaultLogfileName, bool interactive)
        {
            if (File.Exists(configFilename))
            {
                XmlConfigurator.ConfigureAndWatch(new FileInfo(configFilename));
            }
            else if (File.Exists(defaultConfigFilename))
            {
                XmlConfigurator.ConfigureAndWatch(new FileInfo(defaultConfigFilename));
            }
            else
            {
                // should only get here if someone has a messed up install

                if (interactive)
                {
                    RollingFileAppender rfa = new RollingFileAppender();
                    rfa.Layout = new PatternLayout("%-5p [%d{ISO8601}] %-20.20c{1} %m%n");
                    rfa.File = defaultLogfileName;
                    rfa.AppendToFile = false;
                    rfa.MaximumFileSize = "5MB";
                    rfa.MaxSizeRollBackups = 2;
                    rfa.RollingStyle = RollingFileAppender.RollingMode.Once;
                    rfa.ActivateOptions();
                    BasicConfigurator.Configure(rfa);
                    SetLogLevel(log4net.Core.Level.Info, true);
                }
                else
                {
                    // use the trace appender if we are not running interactive
                    TraceAppender ta = new TraceAppender();
                    ta.Layout = new PatternLayout("%-5p [%d{ISO8601}] %-20.20c{1} %m%n");
                    ta.ActivateOptions();
                    BasicConfigurator.Configure(ta);
                    SetLogLevel(log4net.Core.Level.Info, true);
                }

                logUtilLog.Info("Unable to find logging config files.  Using fallback simple logging configuration.");
                logUtilLog.InfoFormat("Logging config file: {0}", configFilename);
            }
        }
示例#16
0
        private static void CreateRepository(string appName, string repositoryName)
        {
            var repository = LoggerManager.CreateRepository(repositoryName);
            var hierarchy = (Hierarchy) repository;
            var tracer = new TraceAppender();
            var patternLayout = new PatternLayout
            {
                ConversionPattern = LogPattern
            };

            patternLayout.ActivateOptions();

            tracer.Layout = patternLayout;
            tracer.ActivateOptions();
            hierarchy.Root.AddAppender(tracer);

            var logFileCommonFolder = Path.Combine(Functions.GetAppDataDirectory(appName), "logs");
            var logFileFolder = Path.Combine(logFileCommonFolder, repositoryName);
            var logFileName = Path.Combine(logFileFolder, "logfile_.txt");

            var roller = new RollingFileAppender
            {
                Layout = patternLayout,
                AppendToFile = true,
                RollingStyle = RollingFileAppender.RollingMode.Date,
                MaxSizeRollBackups = -1,
                DatePattern = "yyyy.MM.dd",
                StaticLogFileName = false,
                File = logFileName,
                PreserveLogFileNameExtension = true
            };
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);

            hierarchy.Root.Level = Level.All;
            hierarchy.Configured = true;
        }
示例#17
0
        private static void EnsureLoggerInited()
        {
            #region Log4Net remove because just supports sync logging.
            var hierarchy = (Hierarchy)LogManager.GetRepository();
            if (hierarchy.Exists(NAME) != null) return;

            var patternLayout = new PatternLayout { ConversionPattern = "%date [%level] [%thread] %logger - %message%newline" };
            patternLayout.ActivateOptions();

            //var appender = new RollingFileAppender
            //{
            //	AppendToFile = true,
            //	File = @"C:\log\kart\",
            //	DatePattern = @"yyyyMMdd\all_yyyyMMdd'.log'",
            //	Layout = patternLayout,
            //	MaxSizeRollBackups = 5,
            //	MaximumFileSize = "1GB",
            //	RollingStyle = RollingFileAppender.RollingMode.Date,
            //	StaticLogFileName = false
            //};
            //appender.ActivateOptions();
            //hierarchy.Root.AddAppender(appender);

            var memory = new TraceAppender() { Name = NAME, Layout = patternLayout };
            memory.ActivateOptions();
            hierarchy.Root.AddAppender(memory);

            //var eventStreamAppender = new EventStreamAppender() { Name = NAME };
            //hierarchy.Root.AddAppender(eventStreamAppender);

            hierarchy.Root.Level = Level.All;
            hierarchy.Configured = true;

            log4net.Config.BasicConfigurator.Configure(hierarchy);
            #endregion
        }