Пример #1
0
        /// <summary>
        /// 写异常日志
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public virtual bool WriteExceptionLog(ExceptionLogEventData data, int level)
        {
            //根据日志级别,过滤日志: 从配置中获取或者从logger获取
            if (level < this.Level)
            {
                return(true);
            }

            //从日志工厂获取日志logger: 共有四个日志logger,分别是内存、oracle、文件、系统日志
            LoggerCollectionEnumerator enumerator = (LoggerCollectionEnumerator)cacheLogger["ExceptionLog"];

            if (enumerator == null)
            {
                throw new ApplicationException("异常日志Logger为空,请检查系统配置文件");
            }

            //调用logger写操作日志接口:分别写入内存或者oracle、或者文件、或者系统日志
            enumerator.Reset();
            while (enumerator.MoveNext())
            {
                //写日志
                ILogger logger = enumerator.Current;
                logger.WriteExceptionLog(data, level);
            }
            return(true);
        }
Пример #2
0
        /// <summary>
        /// 写异常日志
        /// </summary>
        /// <param name="data">日志内容</param>
        /// <param name="level">日志级别</param>
        /// <returns>true:成功;false:失败</returns>
        public override bool WriteExceptionLog(ExceptionLogEventData data, int level)
        {
            if (level < this.logLevel)
            {
                return(true);
            }

            data.StationID = this.StationID;
            data.SystemID  = this.SystemID;

            string commandText = string.Format("INSERT INTO LOG_EXCEPTION(APPID,EXCEPTIONSOURCE,EXCEPTIONTYPE,MESSAGE,EXCEPTIONSTACKTRACE,RECORDLEVEL,CREATEDATE,STATIONID,SYSTEMID)" +
                                               "VALUES('{0}',{1},'{2}',{3},{4},{5},to_date('{6}','yyyy-MM-dd HH24:mi:ss'),{7},{8}) ",
                                               StringHelper.GetSubStr(data.AppID, 30),
                                               ":prmSource",
                                               StringHelper.GetSubStr(data.Type, 30),
                                               ":prmMessage",
                                               ":prmStackTrace",
                                               data.Level,
                                               System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                               ":prmStationID",
                                               ":prmSystemID");

            #region 定义参数
            OracleParameter[] para = new OracleParameter[5];

            para[0]               = new OracleParameter();
            para[0].Direction     = ParameterDirection.Input;
            para[0].OracleType    = OracleType.VarChar;
            para[0].ParameterName = "prmSystemID";
            para[0].Value         = StringHelper.GetSubStr(data.SystemID, 30);

            para[1]               = new OracleParameter();
            para[1].Direction     = ParameterDirection.Input;
            para[1].OracleType    = OracleType.VarChar;
            para[1].ParameterName = "prmStationID";
            para[1].Value         = StringHelper.GetSubStr(data.StationID, 30);

            para[2]               = new OracleParameter();
            para[2].Direction     = ParameterDirection.Input;
            para[2].OracleType    = OracleType.VarChar;
            para[2].ParameterName = "prmMessage";
            para[2].Value         = StringHelper.GetSubStr(data.Message, 2000);

            para[3]               = new OracleParameter();
            para[3].Direction     = ParameterDirection.Input;
            para[3].OracleType    = OracleType.VarChar;
            para[3].ParameterName = "prmStackTrace";
            para[3].Value         = StringHelper.GetSubStr(data.StackTrace, 1000);

            para[4]               = new OracleParameter();
            para[4].Direction     = ParameterDirection.Input;
            para[4].OracleType    = OracleType.VarChar;
            para[4].ParameterName = "prmSource";
            para[4].Value         = StringHelper.GetSubStr(data.Source, 30);
            #endregion
            return(OracleAppender.ExecuteNonQuery(connectionString, commandText, para) > 0);
        }
Пример #3
0
        /// <summary>
        /// 写异常日志
        /// </summary>
        /// <param name="ex">异常信息</param>
        /// <param name="level">日志级别</param>
        /// <returns>true:成功;false:失败</returns>
        public virtual bool WriteExceptionLog(Exception ex, int level)
        {
            ExceptionLogEventData eventData = new ExceptionLogEventData(ex);

            eventData.StationID = StationID;
            eventData.SystemID  = SystemID;

            return(WriteExceptionLog(eventData, level));
        }
Пример #4
0
        /// <summary>
        /// 写异常日志
        /// </summary>
        /// <param name="data">日志内容</param>
        /// <param name="level">日志级别</param>
        /// <returns>true:成功;false:失败</returns>
        public override bool WriteExceptionLog(ExceptionLogEventData data, int level)
        {
            if (level < this.logLevel)
            {
                return(true);
            }

            appender.WriteLog("Exception", data.ToString());
            return(true);
        }
Пример #5
0
        /// <summary>
        /// 写异常日志
        /// </summary>
        /// <param name="data">日志内容</param>
        /// <param name="level">日志级别</param>
        /// <returns>true:成功;false:失败</returns>
        public override bool WriteExceptionLog(ExceptionLogEventData data, int level)
        {
            if (level < this.logLevel)
            {
                return(true);
            }
            data.StationID = this.StationID;
            data.SystemID  = this.SystemID;

            return(RollingFileAppender.SimpleFileLog(PrepareFileName("", LogCategory.Exception), data.ToString()));
        }
Пример #6
0
        /// <summary>
        /// 写异常日志
        /// </summary>
        /// <param name="data">日志内容</param>
        /// <param name="level">日志级别</param>
        /// <returns>true:成功;false:失败</returns>
        public override bool WriteExceptionLog(ExceptionLogEventData data, int level)
        {
            if (level < this.logLevel)
            {
                return(true);
            }

            data.SN        = ++exceptionLogMaxSN;
            data.StationID = this.StationID;
            data.SystemID  = this.SystemID;

            exceptionLog.AddTail <ExceptionLogEventData>(data);
            return(true);
        }
Пример #7
0
 /// <summary>
 /// 写异常日志
 /// </summary>
 /// <param name="data">异常日志数据</param>
 /// <param name="level">日志级别</param>
 /// <returns>true:成功;false:失败</returns>
 public abstract bool WriteExceptionLog(ExceptionLogEventData data, int level);