public void LogMessage(Enums.LogCategory logCategory, string message) { string fileName = ConfigurationManager.AppSettings["LogFileDirectory"] + "LogFile" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; try { using (StreamWriter file = new StreamWriter(fileName, true)){ file.WriteLine(string.Format("{0} - {1}", logCategory.ToString(), message)); file.Close(); } } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } }
/// <summary> /// A better aproach for a Logger is to keep the Single Responsibility Principle /// </summary> /// <param name="logCategory"></param> /// <param name="message"></param> public void LogMessage(Enums.LogCategory logCategory, string message) { if (this._loggers.Count == 0) { throw new Exception("Invalid configuration"); } if (this._logCategories.Count == 0) { throw new Exception("Error or Warning or Message must be specified"); } if (!String.IsNullOrEmpty(message) && this._logCategories.Exists(x => x == logCategory)) { foreach (ILogger logger in _loggers.Distinct()) { logger.LogMessage(logCategory, message); } } }
public void LogMessage(Enums.LogCategory logCategory, string message) { { var connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"]; var providerName = connectionString.ProviderName; var factory = DbProviderFactories.GetFactory(providerName); try { using (IDbConnection connection = factory.CreateConnection()) { connection.ConnectionString = connectionString.ConnectionString; connection.Open(); using (IDbCommand command = connection.CreateCommand()) { command.CommandText = "insert into Log values(@message, @type)"; var parameterMessage = command.CreateParameter(); parameterMessage.ParameterName = "@message"; parameterMessage.Value = message; command.Parameters.Add(parameterMessage); var parameterType = command.CreateParameter(); parameterType.ParameterName = "@type"; parameterType.Value = logCategory.ToString(); command.Parameters.Add(parameterType); command.ExecuteNonQuery(); } } } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } } }