/// <summary> /// 对外不能创建类的实例 /// </summary> private LoggerFactory() { string type = "file"; if (ConfigManager.Config != null) { type = ConfigManager.Config.Logger.Type.ToLower(); } switch (type) { case "file": iLogger = new NormalLogger(); break; case "log4net": throw new ArgumentException("不支持日志方式"); case "mongodb": iLogger = new MongoLogger(); break; case "catlogger": throw new ArgumentException("不支持日志方式"); default: iLogger = new EmptyLogger(); break; } }
/// <summary> /// 对外不能创建类的实例 /// </summary> private LoggerFactory() { string type = "file"; if (ConfigManager.Config != null) { type = ConfigManager.Config.Logger.Type.ToLower(); } switch (type) { case "file": iLogger = new NormalLogger(); break; case "log4net": iLogger = new Log4Logger(); break; case "mongodb": iLogger = new MongoLogger(); break; case "catlogger": iLogger = new CatLogger(); break; default: iLogger = new EmptyLogger(); break; } }
private void LogEntity(T item, string action) { IMongoLogger logger = new MongoLogger(_mongoRepository.GetLogsCollection()); logger.LogOperation(new Log { Date = DateTime.UtcNow, OldEntity = new BsonJavaScript(GetOldEntityJson(item)), NewEntity = new BsonJavaScript(item.ToJson()), EntityType = item?.GetType().BaseType.Name ?? "null", Action = action }); }
/// <summary> /// 自動繼承 /// </summary> /// <param name="context"></param> /// <returns></returns> public Task OnExceptionAsync(ExceptionContext context) { var ex = context.Exception; // 構建錯誤信息對象 var dic = new Dictionary <string, object> { ["Result"] = -1, ["Message"] = ex.Message, ["Error_stack"] = ex.StackTrace }; // 設置結果轉為JSON context.Result = new JsonResult(dic); context.ExceptionHandled = true; //log 到 app.log logger.LogError(ex, ex.Message); //log 到 mongo MongoLogger.getInstance().LogError(ex); return(Task.CompletedTask); }
public void demo_list_error_log() { this.Data = MongoLogger.getInstance().ListLog(); }