LynnaLab.LogHelper.AddAppenderToRootLogger C# (CSharp) Method

AddAppenderToRootLogger() public static method

public static AddAppenderToRootLogger ( log4net a ) : void
a log4net
return void
        public static void AddAppenderToRootLogger(log4net.Appender.IAppender a) {
            ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.AddAppender(a);
        }

Usage Example

示例#1
0
        public Project(string d)
        {
            baseDirectory   = d + '/';
            configDirectory = baseDirectory + "LynnaLab/";
            System.IO.Directory.CreateDirectory(configDirectory);

            logAppender = new log4net.Appender.RollingFileAppender();
            logAppender.AppendToFile = true;
            logAppender.Layout       = new log4net.Layout.PatternLayout(
                "%date{ABSOLUTE} [%logger] %level - %message%newline%exception");
            logAppender.File               = configDirectory + "Log.txt";
            logAppender.Threshold          = log4net.Core.Level.All;
            logAppender.MaxFileSize        = 2 * 1024 * 1024;
            logAppender.MaxSizeRollBackups = 3;
            logAppender.RollingStyle       = log4net.Appender.RollingFileAppender.RollingMode.Composite;
            logAppender.ActivateOptions();
            LogHelper.AddAppenderToRootLogger(logAppender);

            log.Info("Opened project at \"" + baseDirectory + "\".");


            // Before parsing anything, create the "ROM_AGES" or "ROM_SEASONS" definition for ifdefs
            // to work
            definesDictionary.Add("ROM_" + GameString.ToUpper(), "");

            // Parse everything in constants/
            foreach (string f in Directory.EnumerateFiles(baseDirectory + "constants/"))
            {
                if (f.Substring(f.LastIndexOf('.')) == ".s")
                {
                    string filename = "constants/" + f.Substring(f.LastIndexOf('/') + 1);
                    GetFileParser(filename);
                }
            }

            // Initialize constantsMappings
            UniqueGfxMapping = new ConstantsMapping(
                GetFileParser("constants/uniqueGfxHeaders.s"),
                "UNIQGFXH_");
            MainGfxMapping = new ConstantsMapping(
                GetFileParser("constants/gfxHeaders.s"),
                "GFXH_");
            PaletteHeaderMapping = new ConstantsMapping(
                GetFileParser("constants/paletteHeaders.s"),
                "PALH_");
            MusicMapping = new ConstantsMapping(
                GetFileParser("constants/music.s"),
                new string[] { "MUS_", "SND_" });
            SourceTransitionMapping = new ConstantsMapping(
                GetFileParser("constants/transitions.s"),
                "TRANSITION_SRC_");
            DestTransitionMapping = new ConstantsMapping(
                GetFileParser("constants/transitions.s"),
                "TRANSITION_DEST_");
            InteractionMapping = new ConstantsMapping(
                GetFileParser("constants/interactionTypes.s"),
                "INTERACID_");
            EnemyMapping = new ConstantsMapping(
                GetFileParser("constants/enemyTypes.s"),
                "ENEMYID_");
            PartMapping = new ConstantsMapping(
                GetFileParser("constants/partTypes.s"),
                "PARTID_");
            ItemMapping = new ConstantsMapping(
                GetFileParser("constants/itemTypes.s"),
                "ITEMID_");
            SpecialObjectMapping = new ConstantsMapping(
                GetFileParser("constants/specialObjectTypes.s"),
                "SPECIALOBJECTID_");

            // Parse everything in data/
            // A few files need to be loaded before others through
            GetFileParser("data/" + GameString + "/tilesetMappings.s");
            GetFileParser("data/" + GameString + "/tilesetCollisions.s");
            GetFileParser("data/" + GameString + "/tilesetHeaders.s");
            foreach (string f in Directory.EnumerateFiles(baseDirectory + "data/"))
            {
                if (f.Substring(f.LastIndexOf('.')) == ".s")
                {
                    string filename = "data/" + f.Substring(f.LastIndexOf('/') + 1);
                    GetFileParser(filename);
                }
            }
            // Parse data/{game}/
            string gameSpecificDataFolder = "data/" + GameString + "/";

            foreach (string f in Directory.EnumerateFiles(baseDirectory + gameSpecificDataFolder))
            {
                if (f.Substring(f.LastIndexOf('.')) == ".s")
                {
                    string filename = gameSpecificDataFolder + f.Substring(f.LastIndexOf('/') + 1);
                    GetFileParser(filename);
                }
            }

            // Parse wram.s
            GetFileParser("include/wram.s");
            // Parse everything in objects/
            foreach (string f in Directory.EnumerateFiles(baseDirectory + "objects/" + GameString + "/"))
            {
                string basename = f.Substring(f.LastIndexOf('/') + 1);
                if (basename == "macros.s")
                {
                    continue;                         // LynnaLab doesn't understand macros
                }
                if (f.Substring(f.LastIndexOf('.')) == ".s")
                {
                    string filename = "objects/" + GameString + "/" + basename;
                    GetFileParser(filename);
                }
            }
        }