示例#1
0
        private Instance()
        {
            Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();

            PatternLayout patternLayout = new PatternLayout();

            patternLayout.ConversionPattern = Settings._Main.pattern;
            patternLayout.ActivateOptions();

            RollingFileAppender roller = new RollingFileAppender();

            roller.AppendToFile       = false;
            roller.File               = Settings._Main.logFolder + Settings._Main.masterLogName;
            roller.Layout             = patternLayout;
            roller.MaxSizeRollBackups = 5;
            roller.MaximumFileSize    = Settings._Main.masterSize;
            roller.RollingStyle       = RollingFileAppender.RollingMode.Size;
            roller.AppendToFile       = true;
            log4net.Filter.LevelRangeFilter filter = new log4net.Filter.LevelRangeFilter();
            filter.LevelMin = log4net.Core.Level.Error;
            filter.ActivateOptions();
            roller.AddFilter(filter);
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);
            hierarchy.Configured = true;
        }
示例#2
0
        private RollingFileAppender CreateAppender(string appenderName, string fileName, ComonLog.LogLevel logLevel)
        {
            PatternLayout layout = new PatternLayout();

            layout.ConversionPattern = "%d %-5p  %m%n";
            layout.ActivateOptions();

            RollingFileAppender appender = new RollingFileAppender();

            appender.Layout = layout;

            appender.Name = appenderName;
            appender.File = fileName;

            appender.RollingStyle = RollingFileAppender.RollingMode.Composite;
            //appender.Encoding = Encoding.Unicode;
            appender.AppendToFile                 = true;
            appender.MaximumFileSize              = "4MB";
            appender.MaxSizeRollBackups           = 100;
            appender.DatePattern                  = "yyyy-MM-dd";
            appender.PreserveLogFileNameExtension = true;
            appender.StaticLogFileName            = false;
            appender.Threshold = FileAppenderHelper.ConvertLogLevel(logLevel);

            log4net.Filter.LevelRangeFilter levfilter = new log4net.Filter.LevelRangeFilter();
            levfilter.LevelMax = appender.Threshold;
            levfilter.LevelMin = appender.Threshold;
            levfilter.ActivateOptions();

            appender.AddFilter(levfilter);

            appender.ActivateOptions();

            return(appender);
        }
示例#3
0
        public static ILog CreateFileLogger(String name, String path)
        {
            ///LevelRangeFilter
            log4net.Filter.LevelRangeFilter levfilter = new log4net.Filter.LevelRangeFilter();
            levfilter.LevelMax = log4net.Core.Level.Fatal;
            levfilter.LevelMin = log4net.Core.Level.Error;
            levfilter.ActivateOptions();
            //Appender1
            log4net.Appender.FileAppender appender1 = new log4net.Appender.FileAppender();
            appender1.AppendToFile   = true;
            appender1.File           = path + name + ".log";
            appender1.ImmediateFlush = true;
            appender1.LockingModel   = new log4net.Appender.FileAppender.MinimalLock();
            appender1.Name           = name + "FileAppender";
            appender1.AddFilter(levfilter);

            //Appender2
            //log4net.Appender.ConsoleAppender appender2 = new log4net.Appender.ConsoleAppender();
            //appender2.Name = name + "ConsoleAppender";
            //appender2.AddFilter(levfilter);

            log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout("%date [%thread] %-5level - %message%newline");
            layout.ActivateOptions();

            appender1.Layout = layout;
            appender1.ActivateOptions();
            //appender2.Layout = layout;
            //appender2.ActivateOptions();

            //log4net.Repository.ILoggerRepository repository = null;
            //log4net.Repository.ILoggerRepository[] repositories = log4net.LogManager.GetAllRepositories();
            //if (repositories != null)
            //   repository = repositories.FirstOrDefault(x => x.Name == "DynamicRepository");
            //if (repository == null)
            //    repository = log4net.LogManager.CreateRepository("DynamicRepository");

            log4net.Config.BasicConfigurator.Configure(appender1);
            //log4net.Config.BasicConfigurator.Configure(repository, appender1);
            //log4net.Config.BasicConfigurator.Configure(repository, appender2);

            //((log4net.Repository.Hierarchy.Hierarchy)repository).Root.Level = log4net.Core.Level.Info;
            ((log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository()).Root.AddAppender(appender1);


            ILog logger = log4net.LogManager.GetLogger(name);

            return(logger);
        }
示例#4
0
        /// <summary>
        /// 创建高级Appender
        /// ERROR、FATAL两个级别的输出
        /// </summary>
        /// <returns></returns>
        private static IAppender CreateFileAppender()
        {
            log4net.Filter.LevelRangeFilter levfilter = new log4net.Filter.LevelRangeFilter();
            levfilter.LevelMax = log4net.Core.Level.Fatal;
            levfilter.LevelMin = log4net.Core.Level.Error;
            levfilter.ActivateOptions();
            RollingFileAppender appender = new RollingFileAppender();

            appender.AddFilter(levfilter);
            appender.Name              = "errorAppender";
            appender.File              = "SDK_Logs//Error//";
            appender.AppendToFile      = true;
            appender.RollingStyle      = RollingFileAppender.RollingMode.Date;
            appender.DatePattern       = "yyyy-MM-dd\".txt\"";
            appender.StaticLogFileName = false;
            appender.LockingModel      = new FileAppender.MinimalLock();
            log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout();
            layout.ConversionPattern = "【日志级别】%-5level %n【记录时间】%date{HH:mm:ss,fff}  %n【描    述】%message %n %n";
            layout.ActivateOptions();
            appender.Layout = layout;
            appender.ActivateOptions();
            return(appender);
        }
示例#5
0
        static log4net.Appender.RollingFileAppender GetFileAppender(string name, log4net.Core.Level max, log4net.Core.Level min)
        {
            //设置过滤器
            log4net.Filter.LevelRangeFilter _levfilter = new log4net.Filter.LevelRangeFilter();
            _levfilter.LevelMax = max;
            _levfilter.LevelMin = min;
            _levfilter.ActivateOptions();

            //设计记录格式
            log4net.Layout.PatternLayout _layout = new log4net.Layout.PatternLayout("%date [%thread] %-5level - %message%newline");

            //Appender1
            log4net.Appender.RollingFileAppender _appender = new log4net.Appender.RollingFileAppender();
            //设置本Appander的名称
            _appender.Name = m_initTime.ToString("HHmmss") + "." + name + ".Appender";
            _appender.File = GetLogSavePath() + name + ".log";
            //否追加到文件
            _appender.AppendToFile       = true;
            _appender.MaxSizeRollBackups = 10;
            //日志文件名是否为静态
            _appender.StaticLogFileName = true;
            //_appender.DatePattern = "";
            //表示是否立即输出到文件,布尔型的。
            //_appender.ImmediateFlush
            //SecurityContext : 比较少应用,对日志进行加密只类的,使用SecurityContextProvider转换。(对日志的保密要求比较高的时候应该可以应用上吧,Log4考虑的还挺周全)
            //LockingModel : 文件锁类型,RollingFileAppender本身不是线程安全的,如果在程序中没有进行线程安全的限制,可以在这里进行配置,确保写入时的安全。有两中类型:FileAppender.ExclusiveLock 和 FileAppender.MinimalLock

            _appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Date;
            //_appender.LockingModel = new log4net.Appender.FileAppender.MinimalLock();

            _appender.Layout = _layout;
            _appender.AddFilter(_levfilter);
            _appender.ActivateOptions();

            return(_appender);
        }
示例#6
0
        private Instance()
        {
            string AppDataPath = T1.Log.Settings._Main.logFolder;

            try
            {
                Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();

                PatternLayout patternLayout = new PatternLayout();
                patternLayout.ConversionPattern = T1.Log.Settings._Main.pattern;
                patternLayout.ActivateOptions();

                RollingFileAppender roller = new RollingFileAppender();
                roller.AppendToFile       = false;
                roller.File               = AppDataPath + T1.Log.Settings._Main.masterLogName;
                roller.Layout             = patternLayout;
                roller.MaxSizeRollBackups = Settings._Main.numberOfLogs;
                roller.MaximumFileSize    = T1.Log.Settings._Main.masterSize;
                roller.RollingStyle       = RollingFileAppender.RollingMode.Size;
                roller.AppendToFile       = true;
                log4net.Filter.LevelRangeFilter filter = new log4net.Filter.LevelRangeFilter();
                filter.LevelMin = log4net.Core.Level.Error;
                filter.ActivateOptions();
                roller.AddFilter(filter);
                roller.ActivateOptions();
                hierarchy.Root.AddAppender(roller);
                hierarchy.Configured = true;
            }
            catch (Exception er)
            {
                using (StreamWriter sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\FatalLogError.log", true))
                {
                    sw.WriteLine(er.Message);
                }
            }
        }
示例#7
0
        public static log4net.Appender.IAppender CreateFileAppender(string name, string fileName, string levelName)
        {
            log4net.Appender.RollingFileAppender appender = new
                                                            log4net.Appender.RollingFileAppender();
            appender.Name               = name + Settings._Main.appenderSufix;
            appender.File               = Settings._Main.logFolder + fileName + ".log";
            appender.AppendToFile       = true;
            appender.RollingStyle       = log4net.Appender.RollingFileAppender.RollingMode.Size;
            appender.MaxSizeRollBackups = 5;
            appender.MaximumFileSize    = Settings._Main.masterSize;
            appender.CountDirection     = 1;

            log4net.Layout.PatternLayout layout = new
                                                  log4net.Layout.PatternLayout();
            layout.ConversionPattern = Settings._Main.pattern;
            layout.ActivateOptions();

            log4net.Filter.LevelRangeFilter filter = new log4net.Filter.LevelRangeFilter();
            switch (levelName)
            {
            case "All":
                filter.LevelMin = log4net.Core.Level.All;
                break;

            case "Alert":
                filter.LevelMin = log4net.Core.Level.Alert;
                break;

            case "Debug":
                filter.LevelMin = log4net.Core.Level.Debug;
                break;

            case "Critical":
                filter.LevelMin = log4net.Core.Level.Critical;
                break;

            case "Error":
                filter.LevelMin = log4net.Core.Level.Error;
                break;

            case "Fatal":
                filter.LevelMin = log4net.Core.Level.Fatal;
                break;

            case "Info":
                filter.LevelMin = log4net.Core.Level.Info;
                break;

            case "Warn":
                filter.LevelMin = log4net.Core.Level.Warn;
                break;

            default:
                filter.LevelMin = log4net.Core.Level.All;
                break;
            }



            filter.ActivateOptions();

            appender.Layout = layout;
            appender.AddFilter(filter);

            appender.ActivateOptions();

            return(appender);
        }
示例#8
0
        public static log4net.Appender.IAppender CreateFileAppender(string name, string fileName, string levelName)
        {
            string AppDataPath = T1.Log.Settings._Main.logFolder;


            log4net.Appender.RollingFileAppender appender = new
                                                            log4net.Appender.RollingFileAppender();
            try {
                appender.Name               = name + T1.Log.Settings._Main.appenderSufix;
                appender.File               = AppDataPath + fileName + ".log";
                appender.AppendToFile       = true;
                appender.RollingStyle       = log4net.Appender.RollingFileAppender.RollingMode.Size;
                appender.MaxSizeRollBackups = Settings._Main.numberOfLogs;
                appender.MaximumFileSize    = T1.Log.Settings._Main.masterSize;
                appender.CountDirection     = 1;

                log4net.Layout.PatternLayout layout = new
                                                      log4net.Layout.PatternLayout();
                layout.ConversionPattern = T1.Log.Settings._Main.pattern;
                layout.ActivateOptions();

                log4net.Filter.LevelRangeFilter filter = new log4net.Filter.LevelRangeFilter();
                switch (levelName)
                {
                case "All":
                    filter.LevelMin = log4net.Core.Level.All;
                    break;

                case "Alert":
                    filter.LevelMin = log4net.Core.Level.Alert;
                    break;

                case "Debug":
                    filter.LevelMin = log4net.Core.Level.Debug;
                    break;

                case "Critical":
                    filter.LevelMin = log4net.Core.Level.Critical;
                    break;

                case "Error":
                    filter.LevelMin = log4net.Core.Level.Error;
                    break;

                case "Fatal":
                    filter.LevelMin = log4net.Core.Level.Fatal;
                    break;

                case "Info":
                    filter.LevelMin = log4net.Core.Level.Info;
                    break;

                case "Warn":
                    filter.LevelMin = log4net.Core.Level.Warn;
                    break;

                default:
                    filter.LevelMin = log4net.Core.Level.All;
                    break;
                }



                filter.ActivateOptions();

                appender.Layout = layout;
                appender.AddFilter(filter);

                appender.ActivateOptions();
            }
            catch (Exception er)
            {
                using (StreamWriter sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\FatalLogError.log", true))
                {
                    sw.WriteLine(er.Message);
                }
            }

            return(appender);
        }
示例#9
0
            /// <summary>
            /// Setup Log4net in code. <para>*Time to get rid of Config.xml hah?</para>
            /// </summary>
            public override void Configure(Assembly sourceAssembly, ILoggerRepository targetRepository)
            {
                Hierarchy hierarchy = (Hierarchy)targetRepository;

                //Universal layout pattern.
                PatternLayout patternLayout = new PatternLayout();

                //patternLayout.Header = "[task time=%date{HH:mm:ss,fff}]%newline";
                //patternLayout.Footer = "[/task]%newline";
                patternLayout.ConversionPattern = @"%-5level %date{yyyy/MM/dd_HH:mm:ss,fff} [%thread]] - %message%newline";
                patternLayout.ActivateOptions();

                log4net.Filter.LevelRangeFilter rangeFilter = new log4net.Filter.LevelRangeFilter
                {
                    LevelMax = Level.Fatal,
                    LevelMin = Level.Info
                };
                rangeFilter.ActivateOptions();

                //MainLogger.(in log4net root)
                RollingFileAppender mainRoller = new RollingFileAppender
                {
                    AppendToFile       = true,                                 //Save all log to the same file.
                    RollingStyle       = RollingFileAppender.RollingMode.Date, //Make a new log file every day.
                    File               = @"logs\mainlog.log",
                    Layout             = patternLayout,
                    LockingModel       = new FileAppender.MinimalLock(),
                    MaxSizeRollBackups = 10,
                    MaximumFileSize    = "1000KB",
                    StaticLogFileName  = true
                };

                mainRoller.AddFilter(rangeFilter); //don't know what this does. I think I should put it here anyway.
                mainRoller.ActivateOptions();
                hierarchy.Root.AddAppender(mainRoller);

                hierarchy.Root.Level = Level.All;
                hierarchy.Name       = "MainLogs";
                hierarchy.Configured = true;


                //Uploader Logger.
                RollingFileAppender UploadRoller = new RollingFileAppender
                {
                    AppendToFile       = true,
                    RollingStyle       = RollingFileAppender.RollingMode.Date,
                    File               = @"logs\Uploader.log",
                    Layout             = patternLayout,
                    MaxSizeRollBackups = 10,
                    MaximumFileSize    = "1GB",
                    StaticLogFileName  = true
                };

                UploadRoller.AddFilter(rangeFilter);
                UploadRoller.ActivateOptions();
                //Add make a new logger that use this config.
                ILog _uploadLogger = LogManager.GetLogger("UploaderLogs");
                var  uploadLogger  = (Logger)_uploadLogger.Logger;

                uploadLogger.Level = Level.All;
                uploadLogger.AddAppender(UploadRoller);
                uploadLogger.Repository.Configured = true;

                //Ohter logs will all go here.
                RollingFileAppender OtherLogs = new RollingFileAppender
                {
                    AppendToFile       = true,
                    RollingStyle       = RollingFileAppender.RollingMode.Date,
                    File               = @"logs\Others.log",
                    Layout             = patternLayout,
                    LockingModel       = new FileAppender.MinimalLock(), //this should allow mutiple instances writing to same file.
                    MaxSizeRollBackups = 10,
                    MaximumFileSize    = "1GB",
                    StaticLogFileName  = true
                };

                OtherLogs.AddFilter(rangeFilter);
                OtherLogs.ActivateOptions();

                ILog _otherLogger = LogManager.GetLogger("OtherLogs");
                var  otherLogger  = (Logger)_otherLogger.Logger;

                otherLogger.Level = Level.All;
                otherLogger.AddAppender(OtherLogs);
                otherLogger.Repository.Configured = true;
            }
示例#10
0
        private RollingFileAppender CreateAppender(string appenderName, string fileName, ComonLog.LogLevel logLevel)
        {
            PatternLayout layout = new PatternLayout();
            layout.ConversionPattern = "%d %-5p  %m%n";
            layout.ActivateOptions();

            RollingFileAppender appender = new RollingFileAppender();
            appender.Layout = layout;

            appender.Name = appenderName;
            appender.File = fileName;

            appender.RollingStyle = RollingFileAppender.RollingMode.Composite;
            //appender.Encoding = Encoding.Unicode;
            appender.AppendToFile = true;
            appender.MaximumFileSize = "4MB";
            appender.MaxSizeRollBackups = 100;
            appender.DatePattern = "yyyy-MM-dd";
            appender.PreserveLogFileNameExtension = true;
            appender.StaticLogFileName = false;
            appender.Threshold = FileAppenderHelper.ConvertLogLevel(logLevel);

            log4net.Filter.LevelRangeFilter levfilter = new log4net.Filter.LevelRangeFilter();
            levfilter.LevelMax = appender.Threshold;
            levfilter.LevelMin = appender.Threshold;
            levfilter.ActivateOptions();

            appender.AddFilter(levfilter);

            appender.ActivateOptions();

            return appender;
        }