예제 #1
0
        public static void Setup(string path)
        {
            // "%d[%2%t] %-5p[%-10c] %m %n"
            var pl = new PatternLayout {ConversionPattern = "%c%m%n"};
            pl.ActivateOptions();

            var fileAppender = new FileAppender
            {
                AppendToFile = true,
                LockingModel = new FileAppender.MinimalLock(),
                File = path,
                Layout = pl
            };
            fileAppender.ActivateOptions();

            var bufferingForwardingAppender = new BufferingForwardingAppender
            {
                Lossy = false,
                Fix = FixFlags.None
            };
            bufferingForwardingAppender.AddAppender(fileAppender);
            bufferingForwardingAppender.ActivateOptions();

            var consoleAppender = new ConsoleAppender {Layout = pl};
            consoleAppender.ActivateOptions();

            var hierarchy = (Hierarchy) LogManager.GetRepository();
            hierarchy.Root.RemoveAllAppenders();
            BasicConfigurator.Configure(hierarchy, bufferingForwardingAppender, consoleAppender);
        }
예제 #2
0
		private IAppender NewBufferingFileAppender(string outputFile, PatternLayout layout)
		{
			var buffered = new BufferingForwardingAppender
			{
				BufferSize = bufferSize,
				Evaluator = new LevelEvaluator(Level.Error),
				Lossy = true,
				Fix = fixFlags,
				ErrorHandler = new NullErrorHandler()
			};

			buffered.AddAppender(NewRollingFileAppender(outputFile, Level.All, layout));
			buffered.ActivateOptions();

			return buffered;
		}
예제 #3
0
		public void SetupRepository()
		{
			m_hierarchy = new Repository.Hierarchy.Hierarchy();

			m_countingAppender = new CountingAppender();
			m_countingAppender.ActivateOptions();

			m_bufferingForwardingAppender = new BufferingForwardingAppender();
			m_bufferingForwardingAppender.AddAppender(m_countingAppender);

			m_bufferingForwardingAppender.BufferSize = 5;
			m_bufferingForwardingAppender.ClearFilters();
			m_bufferingForwardingAppender.Fix = FixFlags.Partial;
			m_bufferingForwardingAppender.Lossy = false;
			m_bufferingForwardingAppender.LossyEvaluator = null;
			m_bufferingForwardingAppender.Threshold = Level.All;
		}
예제 #4
0
		private void SetupRepository()
		{
			m_hierarchy = new Repository.Hierarchy.Hierarchy();

			m_countingAppender = new CountingAppender();
			m_countingAppender.ActivateOptions();

			m_bufferingForwardingAppender = new BufferingForwardingAppender();
			m_bufferingForwardingAppender.AddAppender(m_countingAppender);

			m_bufferingForwardingAppender.BufferSize = 0;
			m_bufferingForwardingAppender.ClearFilters();
			m_bufferingForwardingAppender.Evaluator = null;
			m_bufferingForwardingAppender.Fix = FixFlags.Partial;
			m_bufferingForwardingAppender.Lossy = false;
			m_bufferingForwardingAppender.LossyEvaluator = null;
			m_bufferingForwardingAppender.Threshold = Level.All;

			m_bufferingForwardingAppender.ActivateOptions();

			log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
		}
예제 #5
0
        static LogManager()
        {
            var layout = new SimpleLayout();
              layout.ActivateOptions();

              var logAppender = new EventLogAppender {Layout = layout, LogName = EventLogConstants.EVENT_LOG_NAME};
              logAppender.ActivateOptions();

              var lossyAppender = new BufferingForwardingAppender
              {
            Lossy = true,
            BufferSize = 10,
            Evaluator = new log4net.Core.LevelEvaluator(log4net.Core.Level.Error)
              };
              lossyAppender.AddAppender(logAppender);
              lossyAppender.ActivateOptions();

              var hierarchy = (Hierarchy) log4net.LogManager.GetRepository();
              Logger root = hierarchy.Root;

              root.Level = log4net.Core.Level.All;

              BasicConfigurator.Configure(lossyAppender);
        }
예제 #6
0
        /// <summary>
        /// Creates Buffer Appender, Responsible for storing all logging events in memory buffer 
        /// and writing them down when by passing the logging events on to the file appender it holds
        /// when its buffer becomes full
        /// Can also be made a lossy logger which writes only writes down to a file when a specific crieteria/condition is met
        /// </summary>
        /// <param name="cacheName">CacheName used to name the Buffer Appender</param>
        /// <param name="fileName">File name to log into</param>
        /// <returns>Returns the created Appender</returns>
        private log4net.Appender.IAppender CreateBufferAppender(string fileName)
        {
            log4net.Appender.BufferingForwardingAppender appender = new BufferingForwardingAppender();
            appender.Name = "BufferingForwardingAppender" + _loggerName;
            //Pick from config
            int bufferSize = bufferDefaultSize;
            ReadConfig(out bufferSize);
            if (bufferSize == bufferDefaultSize)
                ReadClientConfig(out bufferSize);

            if (bufferSize < 1)
                bufferSize = bufferDefaultSize;

            appender.BufferSize = bufferSize;

            //Threshold is maintained by the logger rather than the appenders
            appender.Threshold = log4net.Core.Level.All;

            //Adds the appender to which it will pass on all the logging levels upon filling up the buffer
            appender.AddAppender(CreateRollingFileAppender(fileName));

            //necessary to apply the appender property changes
            appender.ActivateOptions();

            return appender;
        }