void Log(LogLevel level, string message, ColorSetting colorSetting, params object[] objs) { if (_factory._colored) { colorSetting.Apply(); try { Write(level, message, objs); } finally { colorSetting.Revert(); } } else { Write(level, message, objs); } }