diff options
Diffstat (limited to 'src/services.js')
| -rw-r--r-- | src/services.js | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/services.js b/src/services.js index be442c20..5dfc64f7 100644 --- a/src/services.js +++ b/src/services.js @@ -311,8 +311,6 @@ angularServiceInject("$location", function(browser) { <button ng:click="$log.error(message)">error</button> */ angularServiceInject("$log", function($window){ - var console = $window.console || {log: noop, warn: noop, info: noop, error: noop}, - log = console.log || noop; return { /** * @ngdoc method @@ -322,7 +320,7 @@ angularServiceInject("$log", function($window){ * @description * Write a log message */ - log: bind(console, log), + log: consoleLog('log'), /** * @ngdoc method @@ -332,7 +330,7 @@ angularServiceInject("$log", function($window){ * @description * Write a warning message */ - warn: bind(console, console.warn || log), + warn: consoleLog('warn'), /** * @ngdoc method @@ -342,7 +340,7 @@ angularServiceInject("$log", function($window){ * @description * Write an information message */ - info: bind(console, console.info || log), + info: consoleLog('info'), /** * @ngdoc method @@ -352,8 +350,25 @@ angularServiceInject("$log", function($window){ * @description * Write an error message */ - error: bind(console, console.error || log) + error: consoleLog('error') }; + + function consoleLog(type) { + var console = $window.console || {}; + var logFn = console[type] || console.log || noop; + if (logFn.apply) { + return function(){ + var args = []; + foreach(arguments, function(arg){ + args.push(formatError(arg)); + }); + return logFn.apply(console, args); + }; + } else { + // we are IE, in which case there is nothing we can do + return logFn; + } + } }, ['$window'], EAGER_PUBLISHED); /** |
