Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            ILog log = LogManager.GetLogger("NormalAppender");

            CustomRollingFileAppender appender =
                LogManager.GetRepository()
                .GetAppenders()
                .First(x => x is CustomRollingFileAppender) as CustomRollingFileAppender;

            if (appender.Exception != null)
            {
                Console.WriteLine("has error!");
            }
            else
            {
                Console.WriteLine("normally.");
            }

            for (int i = 0; i < 10; i++)
            {
                log.Info(i);
            }

            Console.WriteLine("please, press any key.");
            Console.ReadKey();

            Console.WriteLine("age is " + Util.GetAge());
        }
Ejemplo n.º 2
0
        private IAppender GetFileAppender(LogListener listener)
        {
            var appender = new CustomRollingFileAppender();

            if (listener.Params.ContainsKey(TextFileConstants.Append))
            {
                appender.RollingStyle = listener.Params[TextFileConstants.Append] == TextFileConstants.RolloverValue ||
                                        listener.Params.ContainsKey(TextFileConstants.FilePatternName)
                                  ? RollingFileAppender.RollingMode.Composite
                                  : RollingFileAppender.RollingMode.Size;
            }
            else
            {
                appender.RollingStyle = RollingFileAppender.RollingMode.Size; // append default value
            }
            var patternLayout = new PatternLayout {
                ConversionPattern = DeafultPatternLayout
            };

            patternLayout.ActivateOptions();
            appender.Layout       = patternLayout;
            appender.LockingModel = new FileAppender.MinimalLock();
            appender.AppendToFile = false;
            appender.AddFilter(new LevelRangeFilter {
                LevelMin = _levelMap[listener.MinLevel], LevelMax = _levelMap[listener.MaxLevel]
            });
            if (listener.Params.ContainsKey(TextFileConstants.FileName))
            {
                appender.File = listener.Params[TextFileConstants.FileName];
            }
            else
            {
                appender.StaticLogFileName = false;
                //        appender.CountDirection = 1;
                var filePattern    = Path.GetFileNameWithoutExtension(listener.Params[TextFileConstants.FilePatternName]);
                var extention      = Path.GetExtension(listener.Params[TextFileConstants.FilePatternName]);
                var fileNamePrefix = string.Empty;
                if (!string.IsNullOrEmpty(filePattern))
                {
                    if (filePattern.Contains("'"))
                    {
                        int index = filePattern.IndexOf('\'', 1);
                        if (index > 2 && filePattern.Length > 3)
                        {
                            fileNamePrefix = filePattern.Substring(1, index - 1);
                            filePattern    = filePattern.Substring(index + 1);
                        }
                    }
                    appender.DatePattern = string.Format("{0}'{1}'", filePattern, extention);
                }
                var path = Path.GetDirectoryName(listener.Params[TextFileConstants.FilePatternName]);
                if (!string.IsNullOrEmpty(path))
                {
                    path = path + "\\";
                }
                path          = path + fileNamePrefix;
                appender.File = string.IsNullOrEmpty(path) ? "r" : path;
            }
            if (listener.Params.ContainsKey(TextFileConstants.MaxSize))
            {
                appender.MaximumFileSize = listener.Params[TextFileConstants.MaxSize] + "KB";
            }
            if (listener.Params.ContainsKey(TextFileConstants.RollBackBackups))
            {
                appender.MaxSizeRollBackups = int.Parse(listener.Params[TextFileConstants.RollBackBackups]);
            }
            if (listener.Params.ContainsKey(TextFileConstants.CountDirection))
            {
                appender.CountDirection = int.Parse(listener.Params[TextFileConstants.CountDirection]);
            }
            if (listener.Params.ContainsKey(TextFileConstants.PreserveLogFileNameExtension))
            {
                appender.PreserveLogFileNameExtension = listener.Params[TextFileConstants.PreserveLogFileNameExtension].Equals("true",
                                                                                                                               StringComparison.InvariantCultureIgnoreCase);
            }

            appender.ActivateOptions();
            return(appender);
        }