1/** 2 * Diese Funktion erwartet in dem übergebenen Parameter ein Error-Objekt, 3 * wie es bei einem catch(e) gefangen wird. 4 * Die Meldung des Fehlers, der Dateiname und die ZeilenNr werden als 5 * Parameter an einen Ajax-Aufruf gehangen, so dass sie im Apache-Log auftauchen. 6 * 7 * @param errorObj Das Fehler-Objekt, wie es in einem catch-Block gefangen wird. 8 */ 9function HRLogError(errorObj) 10{ 11 if (errorObj) 12 { 13 try 14 { 15 // Die Parameter müssen als HTTP-Get-Parameter übertragen werden, damit sie im access_log geloggt werden. 16 let errorGetParams = `__JSErrorFile__${encodeURIComponent(errorObj.fileName)}`; 17 errorGetParams += `__JSErrorLine__${encodeURIComponent(errorObj.lineNumber)}`; 18 errorGetParams += `__JSErrorMessage__${encodeURIComponent(errorObj.message)}`; 19 20 if (typeof(HRSendRequest) === 'function') 21 HRSendRequest(`/?${errorGetParams}`); 22 } 23 catch (e) 24 { 25 } 26 27 // Auch in die Browserkonsole loggen. 28 try 29 { 30 console.groupCollapsed('HR-Error') 31 32 // Ein paar Details aus dem Error-Objekt. 33 console.error('message', errorObj.message); 34 console.log('file:', errorObj.fileName); 35 console.log('line-number:', errorObj.lineNumber); 36 37 // Für Evaluate-Fehler von nachgeladenem js-Code. 38 // Später einmal schöner gestalten. 39 if (typeof(errorObj.ajaxStr)) 40 console.log('Nachgeladener js-Code:', errorObj.ajaxStr); 41 42 // Die Aufrufhistorie loggen. 43 console.trace(errorObj); 44 console.groupEnd() 45 } 46 catch (e) 47 { 48 } 49 } 50}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.