11var url = require ( 'url' ) ,
2+ util = require ( 'util' ) ,
23 stackTrace = require ( 'stack-trace' ) ,
34 helpers = require ( './helpers' ) ,
45 CONFIG = require ( '../config/config' ) ,
5-
6+
67 getCookies = function getCookies ( req ) {
78 var key ,
89 keys ,
@@ -33,35 +34,68 @@ var url = require('url'),
3334 result = req . body ;
3435 }
3536 return result ;
37+ } ,
38+ getTrace = function getTrace ( err ) {
39+ var trace = stackTrace . parse ( err ) ,
40+ result = [ ] ;
41+
42+ trace . forEach ( function ( val , index , arr ) {
43+ result . push ( {
44+ CodeFileName : val . fileName ,
45+ LineNum : val . lineNumber ,
46+ Method : val . methodName || ( val . functionName || val . typeName ) + '.<anonymous>'
47+ } ) ;
48+ } ) ;
49+ return result ;
50+ } ,
51+ checkTrace = function CheckTrace ( trace ) {
52+ if ( trace [ 1 ] . CodeFileName . search ( 'lib/logger.js' ) >= 0 ) {
53+ trace . splice ( 1 , 1 ) ;
54+ }
55+ return trace ;
56+ } ,
57+ getURL = function getURL ( req ) {
58+ var href = ( req . connection . encrypted ? "https://" : "http://" ) + req . headers . host + req . url ;
59+ return href ;
3660 } ;
3761
3862module . exports = {
39- formatEx : function formatEx ( err , req ) {
40- var trace = this . parseError ( err ) ,
63+ getStackTraceItem : function getStackTraceItem ( err ) {
64+ var trace = getTrace ( err ) ;
65+ trace = checkTrace ( trace ) ;
66+ return {
67+ SrcMethod : trace [ 1 ] . Method ,
68+ SrcLine : trace [ 1 ] . LineNum
69+ }
70+ } ,
71+ formatEx : function formatEx ( err , req , msg ) {
72+ var trace = getTrace ( err ) ,
73+ newTrace = checkTrace ( trace ) ,
4174 ex = {
4275 OccuredEpochMillis : Date . now ( ) ,
4376 Error : {
44- Message : err . method ,
45- ErrorType : err . name ,
46- SourceMethod : trace [ 0 ] ,
47- StackTrace : trace ,
77+ Message : msg || err . message ,
78+ ErrorType : err . name || 'StringException' ,
79+ ErrorTypeCode : null ,
80+ SourceMethod : msg ? newTrace [ 1 ] . Method : trace [ 1 ] . Method ,
81+ StackTrace : msg ? newTrace : trace ,
4882 InnerError : null
4983 } ,
5084 EnvironmentDetail : {
51- AppName : CONFIG . APP_DETAILS . AppName ,
52- AppNameID : CONFIG . APP_DETAILS . AppNameID ,
53- EnvID : CONFIG . APP_DETAILS . EnvID ,
54- AppEnvID : CONFIG . APP_DETAILS . AppEnvID ,
55- AppLocation : process . env . PWD ,
85+ AppName : CONFIG . APP_DETAILS ? CONFIG . APP_DETAILS . AppName : CONFIG . APPNAME ,
86+ AppNameID : CONFIG . APP_DETAILS ? CONFIG . APP_DETAILS . AppNameID : '' ,
87+ EnvID : CONFIG . APP_DETAILS ? CONFIG . APP_DETAILS . EnvID : '' ,
88+ AppEnvID : CONFIG . APP_DETAILS ? CONFIG . APP_DETAILS . AppEnvID : '' ,
89+ AppLocation : process . env . PWD
5690 } ,
5791 ServerVariables : process . env
5892 } ,
59- headers = req . headers ,
60- qs ,
93+ headers = req ? req . headers : { } ,
94+ href ,
6195 key ;
6296
6397 if ( req ) {
64- qs = url . parse ( req . url , true ) ;
98+ href = url . parse ( getURL ( req ) , true ) ;
6599
66100 if ( req . headers . cookie ) {
67101 headers = { } ;
@@ -75,14 +109,14 @@ module.exports = {
75109 ex . WebRequestDetail = {
76110 UserIPAddress : req . headers [ 'x-forwarded-for' ] || req . connection . remoteAddress || req . socket . remoteAddress ||
77111 req . connection . socket . remoteAddress ,
78- HttpMethod : req . protocol ,
79- RequestProtocol : req . method ,
80- RequestUrl : req . url ,
81- RequestUrlRoot : qs . pathname ,
112+ HttpMethod : req . method ,
113+ RequestProtocol : req . connection . encrypted ? 'HTTPS' : 'HTTP' ,
114+ RequestUrl : href . hostname + href . pathname ,
115+ RequestUrlRoot : href . hostname ,
82116 ReferralUrl : req . headers . referer ,
83117 Headers : headers ,
84118 Cookies : getCookies ( req ) ,
85- QueryString : qs . query ,
119+ QueryString : href . query ,
86120 PostData : getPostData ( req )
87121 } ;
88122 }
0 commit comments