Click here to Skip to main content
15,565,751 members
Articles / Web Development / ASP.NET
Tip/Trick
Posted 29 Dec 2011

Stats

40.2K views
35 bookmarked

How to Log Javascript Errors in C#

Rate me:
Please Sign up or sign in to vote.
4.67/5 (15 votes)
29 Dec 2011CPOL
Logging client side JavaScript errors to the server.

This code shows how to handle a JavaScript error by posting the details back to the server to be logged. This code can be wired up to use any logging system.


The errors.js file establishes a handler for window.onerror to call the handleError function. The handleError function creates a web request (using the createHttpRequest function in httpRequests.js) and posts the error details back to LogJavascriptError.aspx. The LogJavascriptError.aspx file then logs the details to the file.


errors.js

C#
var applicationPath = '';

function handleError(msg, srcUrl, line){

    var receiveReq = createHttpRequest();

    var url = applicationPath + '/Admin/LogJavascriptError.aspx';

    var data  = "ErrorData=" + msg + "&SourcePage=" + srcUrl + "&Line=" + line;

    receiveReq.open("POST", url, true);

    receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    receiveReq.setRequestHeader("Content-length", data.length);
    receiveReq.setRequestHeader("Connection", "close");

    receiveReq.send(data);
}

window.onerror=handleError;

http://code.google.com/p/sitestarter/source/browse/trunk/Src/App/WWW/js/errors.js[^]


httpRequests.js

C#
function createHttpRequest() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest(); //Not IE
    } else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP"); //IE
    } else {
        alert("Your browser doesn't support the XmlHttpRequest object.  Please upgrade to Firefox.");
    }
}

http://code.google.com/p/sitestarter/source/browse/trunk/Src/App/WWW/js/httpRequests.js[^]


LogJavascriptError.aspx

C#
string errorData = Request.Form["ErrorData"];
string sourcePage = Request.Form["SourcePage"];
string line = Request.Form["Line"];

string full = "Javascript error: " + errorData + Environment.NewLine + 
              "Location: " + sourcePage + ", line " + line;

LogWriter.Error(full);

Response.Write("Done");

http://code.google.com/p/sitestarter/source/browse/trunk/Src/App/WWW/Admin/LogJavascriptError.aspx[^]

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
SoftwareMonkeys
Australia Australia
Founder of www.softwaremonkeys.net

Comments and Discussions

 
QuestionBe careful here Pin
tmbgfan29-Dec-11 6:54
tmbgfan29-Dec-11 6:54 
AnswerRe: Be careful here Pin
SoftwareMonkeys29-Dec-11 11:38
SoftwareMonkeys29-Dec-11 11:38 
GeneralRe: Be careful here Pin
baskinhu3-Jan-12 5:06
baskinhu3-Jan-12 5:06 
GeneralRe: Be careful here Pin
SoftwareMonkeys3-Jan-12 12:32
SoftwareMonkeys3-Jan-12 12:32 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.