/// <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;
            }
        }
Exemple #2
0
        /// <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;
            }
        }
Exemple #3
0
        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
            });
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
 public void demo_list_error_log()
 {
     this.Data = MongoLogger.getInstance().ListLog();
 }