using System.Collections.Generic;
void Info(string description, Dictionary<string, object> reference);
void Error(string code, string description, Dictionary<string, object> reference);
public interface ISettings
ILogger SetAppName(string appName);
public class LogWriter : ILogger
internal string AppName {get; set;}
internal LogWriter(string code=null, string appName = "test")
_ts = DateTimeOffset.Now.ToUnixTimeSeconds();
public void Info(string description, Dictionary<string, object> reference)
CommonLog(description, reference, "INFO");
public void Error(string code, string description, Dictionary<string, object> reference)
CommonLog(description, reference, "ERROR");
public void CommonLog(string description, Dictionary<string, object> reference, string type)
Console.WriteLine($"{_ts} => {this.AppName} {type}, {_code}, {description}, " + reference["k"]);
public class ConsoleLogger : ILogger, ISettings
public ILogger Code(string code)
_logger = new LogWriter(code, _appName);Console.WriteLine(_logger._ts + ","+_logger.AppName);
public void Info(string description, Dictionary<string, object> reference = null)
_logger = new LogWriter(appName:_appName);Console.WriteLine(_logger._ts + ","+_logger.AppName);
_logger.Info(description, reference);
public void Error(string code, string description, Dictionary<string, object> reference = null)
_logger = new LogWriter(appName:_appName);Console.WriteLine(_logger._ts + ","+_logger.AppName);
_logger.Error(code, description, reference);
public ILogger SetAppName(string name)
public static void Main()
string m = "keeping it crazy";
var reference = new Dictionary<string, object>()
string description = "Describes the log";
string code = "LOG.CODE";
var log = new ConsoleLogger();
log.Code(code).Info(description, reference);
log.Info(description, reference);
log.Error(code, description, reference);
var log2 = new ConsoleLogger();
log2.Code(code).Info(description, reference);
log2.Info(description, reference);
log2.Error(code, description, reference);