Hello,

I have library without any xml file:

public class Log4NetEventLogger
    {
        #region Private Instance Fields
        private string _loggerName;

        private log4net.ILog _logger;


        #endregion Private Instance Fields

        #region constructor
        public Log4NetEventLogger(string logerName)
        {

            _loggerName = logerName;

            _logger = log4net.LogManager.GetLogger(_loggerName);


                if (_logger.Logger.Repository.GetAppenders().Where(a =>
a.Name == "EventLogAppender").Count() == 0)
                {
                    AddAppender(logerName,
CreateEventLogAppender("EventLogAppender"));
                }
                 }
        #endregion constructor

        public void AddEntry(string contextInfo, string message,
EventLogEntryType eventType)
        {

            _logger = log4net.LogManager.GetLogger(_loggerName);

            switch (eventType)
            {
                case EventLogEntryType.Error:
                    _logger.Error(message);
                    break;
                case EventLogEntryType.Warning:
                    _logger.Warn(message);
                    break;
                case EventLogEntryType.Information:
                    _logger.Info(message);
                    break;
                case EventLogEntryType.SuccessAudit:
                    throw new NotImplementedException();
                    break;
                case EventLogEntryType.FailureAudit:
                    throw new NotImplementedException();
                    break;
                default:
                    throw new ArgumentOutOfRangeException("eventType");
            }

        public static void AddAppender(string loggerName,
log4net.Appender.IAppender appender)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(loggerName);
            log4net.Repository.Hierarchy.Logger l =
          (log4net.Repository.Hierarchy.Logger)log.Logger;

            l.AddAppender(appender);
        }

        private IAppender CreateEventLogAppender(string loggerName)
        {
            log4net.Appender.EventLogAppender appender = new
           log4net.Appender.EventLogAppender();
            appender.Name = "EventLogAppender";
            appender.ApplicationName = loggerName;
            appender.LogName = "MyDiary";

            log4net.Layout.PatternLayout layout = new
          log4net.Layout.PatternLayout();
            layout.ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n";
            layout.ActivateOptions();

            appender.Layout = layout;
            appender.ActivateOptions();

                 var filter = new log4net.Filter.LoggerMatchFilter();



            filter.AcceptOnMatch = true;



            var filterDeny = new log4net.Filter.DenyAllFilter();



            var filterErrorType = new log4net.Filter.LevelRangeFilter();



            filterErrorType.AcceptOnMatch = true;



            //filterErrorType.LevelMin = Level.Error;



            appender.AddFilter(filter);

            appender.AddFilter(filterDeny);

            appender.AddFilter(filterErrorType);



            appender.ActivateOptions();



            log4net.Config.BasicConfigurator.Configure(appender);


            return appender;
        }
    }
}

I use it like this:

  var myLogger = new Log4NetEventLogger("calculator");
myLogger.AddEntry("exception", "additionalInformation",
EventLogEntryType.Error);

 I use windows xp as Administrator

It creates me new eventlog, but it doesn't add any new item to it. Why is
that ?

Thanks & Regards,

Reply via email to