コード例 #1
0
        public Logger(bool toSTDOUT = true, T minLogLevel = default, ILogMessageFormater <T> messageFormater = null, params string[] logFilePath)
        {
            ILogMessageFormater <T> formater = messageFormater ?? DefaultLogMessageFormater <T> .Instance;

            TextWriter[] logFiles = new TextWriter[logFilePath.Length + (toSTDOUT ? 1 : 0)];

            for (int i = 0; i < logFilePath.Length; i++)
            {
                logFiles[i] = new StreamWriter(logFilePath[i], true);
            }
            if (toSTDOUT)
            {
                logFiles[logFilePath.Length] = Console.Out;
            }

            fileHandler = new LogfileHandler <T>(formater, logFiles);
            startTime   = Now;
            MinLogLevel = minLogLevel;
            T[] enumTypes = (T[])Enum.GetValues(typeof(T));
            logEvents = new Dictionary <T, Action <LogMessage <T> > >(enumTypes.Length);
            foreach (var item in enumTypes)
            {
                logEvents.Add(item, default);
            }
        }
コード例 #2
0
 public LogfileHandler(ILogMessageFormater <T> formater, params TextWriter[] pOutputStreams)
 {
     if (pOutputStreams is null || pOutputStreams.Length == 0)
     {
         throw new ArgumentException("A minimum of one output stream must be specified", nameof(pOutputStreams));
     }
     outputStreams = pOutputStreams;
     outputStreamSynchronisation = new SemaphoreSlim(1, 1);
     this.formater = formater;
 }
コード例 #3
0
        public Logger(T minLogLevel = default, ILogMessageFormater <T> messageFormater = null, params TextWriter[] pWriterStreams)
        {
            ILogMessageFormater <T> formater = messageFormater ?? DefaultLogMessageFormater <T> .Instance;

            fileHandler = new LogfileHandler <T>(formater, pWriterStreams);
            startTime   = Now;
            MinLogLevel = minLogLevel;
            T[] enumTypes = (T[])Enum.GetValues(typeof(T));
            logEvents = new Dictionary <T, Action <LogMessage <T> > >(enumTypes.Length);
            foreach (var item in enumTypes)
            {
                logEvents.Add(item, default);
            }
        }
コード例 #4
0
 public readonly string ToString(ILogMessageFormater <T> formater, object formatProviderData)
 => formater.FormateLogMessage(this, formatProviderData);
コード例 #5
0
ファイル: Email.cs プロジェクト: padman91/Aug31st
 public Email(ILogMessageFormater formater, IEmailHelper sender)
 {
     _formater = formater;
     _sender   = sender;
 }
コード例 #6
0
 public Output(ILogMessageFormater formater, IOutputWriter writer)
 {
     _formater = formater;
     _writer   = writer;
 }