12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System;
- using System.Linq;
- namespace VCommon.Logging
- {
- public sealed class MultiLogger : ILogger
- {
- private readonly ILogger[] _loggers;
- public MultiLogger(params ILogger[] loggers)
- {
- if (loggers.Any(p => p is DefaultLogger)) throw new ArgumentException("Can not use DefaultLogger");
- _loggers = loggers.Where(p => false == p is NullLogger).ToArray();
- }
- public void Debug(string summary, object moreInfo = null)
- {
- foreach (var logger in _loggers) logger.Debug(summary, moreInfo);
- }
- public void Trace(string summary, object moreInfo = null)
- {
- foreach (var logger in _loggers) logger.Trace(summary, moreInfo);
- }
- public void Info(string summary, object moreInfo = null)
- {
- foreach (var logger in _loggers) logger.Info(summary, moreInfo);
- }
- public void Warn(string summary, object moreInfo = null)
- {
- foreach (var logger in _loggers) logger.Warn(summary, moreInfo);
- }
- public void Error(string summary, object moreInfo = null)
- {
- foreach (var logger in _loggers) logger.Error(summary, moreInfo);
- }
- public void Fatal(string summary, object moreInfo = null)
- {
- foreach (var logger in _loggers) logger.Fatal(summary, moreInfo);
- }
- }
- }
|