예제 #1
0
        private static List<SqlParameter> CreateDefaultParameters(LogSourceType sourceType, LogType logType, LogData data)
        {
            // ProcessInfo에서 추출
            string message = null;
            string description = null;
            if (data != null)
            {
                message = data.Description;
                description = data.ValueStack;
            }

            // 필드값 생성
            return CreateDefaultParameters(sourceType, logType, message, description);
        }
예제 #2
0
        /// <summary>
        /// 경고 메시지 로깅.
        /// </summary>
        /// <param name="sourceType">Source 타입</param>
        /// <param name="data">LogData 개체. null이 아닐 경우, 포함된 DataStack 정보를 기록함.</param>
        public static void WriteWarning(LogSourceType sourceType, LogData data)
        {
            // 로깅 사용하지 않을 경우 종료
            if (!_enableLog) return;
            if (!_enableWarningLog) return;

            // StackTrace 원본이 LogManager일 경우 종료
            if (CalledBySelf()) return;

            try
            {
                // 필드값 생성
                List<SqlParameter> values = CreateDefaultParameters(sourceType, LogType.Warning, data);

                // DB에 쓰기
                InsertIntoDatabase(values);
            }
            catch { }   // 로깅 시 예외 발생은 무조건 스킵
        }
예제 #3
0
 /// <summary>
 /// Exception.Data에 LogData에 포함된 Values 데이터 추가. 예외 처리됨.
 /// 이미 키가 있을 경우, 덮어써짐.
 /// </summary>
 /// <param name="ex">Exception 개체</param>
 /// <param name="data">Value가 포함된 LogData 개체</param>
 public static void AddExceptionData(ref Exception ex, LogData data)
 {
     if (ex == null) return;
     if (data == null) return;
     if (data.Values == null || data.Values.Count == 0) return;
     try
     {
         foreach (string key in data.Values.Keys)
         {
             AddExceptionData(ref ex, key, data.Values[key]);
         }
     }
     catch { }   // 로깅 시 예외 발생은 무조건 스킵
 }
예제 #4
0
        /// <summary>
        /// 성능 로깅.
        /// </summary>
        /// <param name="sourceType">Source 타입</param>
        /// <param name="data">LogData 개체. null일 경우, 로그 남지 않음.</param>
        public static void WritePerformance(LogSourceType sourceType, LogData data)
        {
            // 로깅 사용하지 않을 경우 종료
            if (!_enableLog) return;
            if (!_enablePerformanceLog) return;

            // StackTrace 원본이 LogManager일 경우 종료
            if (CalledBySelf()) return;

            try
            {
                // 소요 시간이 컨피그에 정의된 시간보다 같거나 클 경우에만 기록
                // ->  컨피그 정의 시간이 0 이하이면 항상 기록됨
                if (data != null)
                {
                    // 타이머 종료
                    data.StopTimer();

                    if (data.ElapsedMilliseconds >= _performanceMilliseconds)
                    {
                        string message = data.Description;
                        string description = data.ValueStack;

                        // 필드값 생성
                        List<SqlParameter> values = CreateDefaultParameters(sourceType, LogType.Performance, message, description);
                        values.Add(new SqlParameter("@StartTime", data.StartTime.ToString("yyyy-MM-dd HH:mm:ss.fff")));
                        values.Add(new SqlParameter("@EndTime", data.EndTime.ToString("yyyy-MM-dd HH:mm:ss.fff")));
                        values.Add(new SqlParameter("@ElapsedMilliseconds", data.ElapsedMilliseconds));

                        // DB에 쓰기
                        InsertIntoDatabase(values);
                    }
                }
            }
            catch { }   // 로깅 시 예외 발생은 무조건 스킵
        }
예제 #5
0
        private static List <SqlParameter> CreateDefaultParameters(LogSourceType sourceType, LogType logType, LogData data)
        {
            // ProcessInfo에서 추출
            string message     = null;
            string description = null;

            if (data != null)
            {
                message     = data.Description;
                description = data.ValueStack;
            }

            // 필드값 생성
            return(CreateDefaultParameters(sourceType, logType, message, description));
        }