public void Log(LogLevel level, string format, params object[] args) { if (level >= MinimumLevel && level <= MaximumLevel) { string date = DateTime.Now.ToString(DateFormat); string log = string.Format(format, args); string[] lines = log.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); foreach (string line in lines) { string message = MessageFormat .Replace(LogMessageToken.Date, date) .Replace(LogMessageToken.Level, level.ToString().ToUpper()) .Replace(LogMessageToken.Message, line) .Replace(LogMessageToken.Tag, Tag); WriteMessage(message); } } }