Example #1
0
    /// <summary>
    /// Adds a customized logger handler (e.g. log to file) to a specific level.
    /// Note: You can have (n log handlers assuming your system has the resources)
    /// </summary>
    /// <param name="level"></param>
    /// <param name="handler"></param>
    public void addSpecialLogger(int level, LoggerEventHandler handler)
    {
        if (level < levels)
        {
            if (leh[level] != null)
            {
                int size = leh[level].Length + 1;
                LoggerEventHandler[] temp = new LoggerEventHandler[size];

                for (int i = 0; i < leh[level].Length; i++)
                {
                    temp[i] = leh[level][i];
                }

                temp[size - 1] = handler;

                leh[level] = temp;
            }
            else
            {
                leh[level]    = new LoggerEventHandler[1];
                leh[level][0] = handler;
            }
        }
    }
Example #2
0
        protected virtual void OnLogAdded(LoggerEventArgs e)
        {
            LoggerEventHandler handler = LogAdded;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Example #3
0
    /// <summary>
    /// Adds a customized log handler to each log level
    /// </summary>
    /// <param name="handler"></param>
    public void addSpecialLoggerToAllLevels(LoggerEventHandler handler)
    {
        if (handler == null)
        {
            return;
        }

        for (int level = 0; level < this.levels; level++)
        {
            addSpecialLogger(level, handler);
        }
    }
Example #4
0
    /// <summary>
    /// Effectively the constructor (so no code would have to be repeated).  Consequently
    /// if one were to try to put this block inside the constructor matching the signature and
    /// then referenced it with :this(levels, defaultHandler) in the other constructors MS
    /// has a bit of a fit.  Dunno...this works, don't really care.
    /// </summary>
    /// <param name="levels"></param>
    /// <param name="defaultHandler"></param>
    private void init(uint levels, LoggerEventHandler defaultHandler)
    {
        this.levels         = levels;
        this.defaultHandler = defaultHandler;
        this.max            = levels - 1;

        leh = new LoggerEventHandler[levels][];

        LoggerEventHandler[] handler = new LoggerEventHandler[1];

        handler[0] = defaultHandler;

        for (int i = 0; i < levels; i++)
        {
            leh[i] = handler;
        }
    }
Example #5
0
 /// <summary>
 /// With this constructor the developer is responsible for defining what
 /// they want the logger to do (in the defaultHandler).
 /// </summary>
 /// <param name="levels"></param>
 /// <param name="defaultHandler"></param>
 public Logger(uint levels, LoggerEventHandler defaultHandler)
 {
     init(levels, defaultHandler);
 }
Example #6
0
    /// <summary>
    /// Effectively the constructor (so no code would have to be repeated).  Consequently
    /// if one were to try to put this block inside the constructor matching the signature and
    /// then referenced it with :this(levels, defaultHandler) in the other constructors MS
    /// has a bit of a fit.  Dunno...this works, don't really care.
    /// </summary>
    /// <param name="levels"></param>
    /// <param name="defaultHandler"></param>
    private void init(uint levels, LoggerEventHandler defaultHandler)
    {
        this.levels = levels;
        this.defaultHandler = defaultHandler;
        this.max = levels - 1;

        leh = new LoggerEventHandler[levels][];

        LoggerEventHandler[] handler = new LoggerEventHandler[1];

        handler[0] = defaultHandler;

        for (int i = 0; i < levels; i++)
        {
            leh[i] = handler;
        }
    }
Example #7
0
    /// <summary>
    /// Adds a customized log handler to each log level
    /// </summary>
    /// <param name="handler"></param>
    public void addSpecialLoggerToAllLevels(LoggerEventHandler handler)
    {
        if (handler == null) return;

        for (int level = 0; level < this.levels; level++)
        {
            addSpecialLogger(level, handler);
        }
    }
Example #8
0
    /// <summary>
    /// Adds a customized logger handler (e.g. log to file) to a specific level.
    /// Note: You can have (n log handlers assuming your system has the resources)
    /// </summary>
    /// <param name="level"></param>
    /// <param name="handler"></param>
    public void addSpecialLogger(int level, LoggerEventHandler handler)
    {
        if (level < levels)
        {
            if (leh[level] != null)
            {
                int size = leh[level].Length + 1;
                LoggerEventHandler[] temp = new LoggerEventHandler[size];

                for (int i = 0; i < leh[level].Length; i++)
                {
                    temp[i] = leh[level][i];
                }

                temp[size - 1] = handler;

                leh[level] = temp;
            }
            else
            {
                leh[level] = new LoggerEventHandler[1];
                leh[level][0] = handler;
            }
        }
    }
Example #9
0
 /// <summary>
 /// With this constructor the developer is responsible for defining what
 /// they want the logger to do (in the defaultHandler).
 /// </summary>
 /// <param name="levels"></param>
 /// <param name="defaultHandler"></param>
 public Logger(uint levels, LoggerEventHandler defaultHandler)
 {
     init(levels, defaultHandler);
 }