Simple Logging for Functions

overrides!

by Steven Senkus

JavaScript

/*var alert = function alert() { // override window.alert
    console.log('alert overridden, result:', arguments[0]);
};

var confirm = function confirm() { // override window.alert
    console.log('confirm overriden:', arguments[0]);
};
*/
var logger, confirm = alert = logger = function logger(result) {
    console.log(result + ' logged');
};

var add = function (a, b, log) {
    this.log = log || console.log;
    console.log('log set as ' + this.log.name); // works in FF, not sure about others
    if (this.log) {
        try {
            return this.log(a + b);
        } catch (e) {
            log(e);
        }
    }
    return a + b;
};

var x = add;

add(2, 4);
add(3, 5, alert);
add(30, 5, alert);
add(40, 5, confirm);
add(4, 12, logger);
x(123, 123, logger);

confirm('asdfasdfaf')
alert('asadfaffagafaga')
add(200,300);