nodules / terror

Base error class which will help you organize errors, generate informative logs and as result grep logs more effectively
MIT License
25 stars 7 forks source link

replace setLogger on addLogger, removeDefaultLogger added #8

Closed jincod closed 11 years ago

jincod commented 11 years ago

Can use custom logger with default

kaero commented 11 years ago

Why you needs in so complex solution? Default logger is not something special. Keep original logger, if you want to use built-in logger and your own logging solution:

var CustomError = Terror.create('CustomError'),

CustomError.setLogger(function(message, level) {
    // your own stuff
    log.push([message, level]);

    // call built-in logger
    Terror.prototype.logger.call(this, message, level);
});

If you want to use multiple loggers, you can implement desired API in application common error class:

var ApplicationError = Terror.create('ApplicationError');

ApplicationError.addLogger = ...
ApplicationError.removeLogger = ...
ApplicationError.removeDefaultLogger = ...

var ConnectionError = ApplicationError.create('ConnectionError')
    .addLogger(fucntion(...) { ... });

or you can use solutions like winston for multitarget logging.

In any case, support for multiple loggers doesn't looks to be core terror functionality.

jincod commented 11 years ago

Ok, thx.