private void addConveters(PatternLayout patternLayout)
 {
     foreach (ConverterInfo conveterInfo in m_converters)
     {
         patternLayout.AddConverter(conveterInfo);
     }
 }
Ejemplo n.º 2
0
        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
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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");
        }
Ejemplo n.º 11
0
        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();
        }
Ejemplo n.º 12
0
        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;
            }
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        /// <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
            }
        }
Ejemplo n.º 15
0
        /// <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);
        }