Esempio n. 1
0
        private ErrorLogT MakeLogEntity(ArcheFx.Diagnostics.TraceContext context, ExceptionTraceEntry entry, string execStatement)
        {
            ErrorLogT log = new ErrorLogT();

            log.TargetServer = Environment.MachineName;
            log.ComponentType = entry.MethodInfo.ComponentType.ToString();
            log.Message = entry.Message;
            log.StackTrace = entry.StackTrace;
            log.UserId = entry.UserID;
            log.SystemNm = "E";
            log.Reg_dt = DateTime.Now;
            log.EXECSTATEMENT = execStatement;
            log.error_domain = context.HttpContext.Request.Url.Authority;

            if (null != context.HttpContext)
            {
                string path = context.HttpContext.Request.Url.AbsolutePath;

                if (false == string.IsNullOrEmpty(path))
                {
                    log.METHOD = path + @"?";
                }
                else
                {
                    log.METHOD = @"(no path)?";
                }
            }

            log.METHOD += entry.MethodInfo.Method.Name;

            return log;
        }
Esempio n. 2
0
        protected bool IsLoggableError(ExceptionTraceEntry entry)
        {
            if (entry.Exception is ebay.NoLoggingException) return false;

            if (entry.Exception is System.Threading.ThreadAbortException) return false;
            if (entry.Exception is HttpRequestValidationException) return false; //잠재적 위험... 메시지가 많으므로 제외 하기로 결정(2005-12-01)
            if (entry.Exception is InvalidOperationException) return false; //URL이 예기치 않게... 메소드호출이 유효하지 않은경우
            if (entry.Exception is HttpException)
            {
                if (((HttpException)entry.Exception).GetHttpCode() == 404) return false;//404 에러 제외 하기로 결정(2005-12-12)
                if (null != entry.Exception.InnerException &&
                    entry.Exception.InnerException is System.Web.UI.ViewStateException) return false; // ViewState 오류는 스크래핑으로 간주 (로깅은 CAL에 맞김)
            }

            return true;
        }