Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Commit

Permalink
feat($log): add $log.debug()
Browse files Browse the repository at this point in the history
New debug() method with suppressable output via
$logProvider.debugEnabled()

Closes #1592
  • Loading branch information
nlaplante authored and vojtajina committed Jan 18, 2013
1 parent 93070f1 commit 9e991dd
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 8 deletions.
46 changes: 45 additions & 1 deletion src/ng/log.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,33 @@
</example>
*/

/**
* @ngdoc object
* @name ng.$logProvider
* @description
* Use the `$logProvider` to configure how the application logs messages
*/
function $LogProvider(){
var debug = true,
self = this;

/**
* @ngdoc property
* @name ng.$logProvider#debugEnabled
* @methodOf ng.$logProvider
* @description
* @param {string=} flag enable or disable debug level messages
* @returns {*} current value if used as getter or itself (chaining) if used as setter
*/
this.debugEnabled = function(flag) {
if (isDefined(flag)) {
debug = flag;
return this;
} else {
return debug;
}
};

this.$get = ['$window', function($window){
return {
/**
Expand Down Expand Up @@ -74,7 +100,25 @@ function $LogProvider(){
* @description
* Write an error message
*/
error: consoleLog('error')
error: consoleLog('error'),

/**
* @ngdoc method
* @name ng.$log#debug
* @methodOf ng.$log
*
* @description
* Write a debug message
*/
debug: (function () {
var fn = consoleLog('debug');

return function() {
if (debug) {
fn.apply(self, arguments);
}
}
}())
};

function formatError(arg) {
Expand Down
51 changes: 44 additions & 7 deletions test/ng/logSpec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
'use strict';

function initService(debugEnabled) {
return module(function($logProvider){
$logProvider.debugEnabled(debugEnabled);
});
}

describe('$log', function() {
var $window, logger, log, warn, info, error;
var $window, logger, log, warn, info, error, debug;



Expand All @@ -12,6 +18,7 @@ describe('$log', function() {
warn = function() { logger+= 'warn;'; };
info = function() { logger+= 'info;'; };
error = function() { logger+= 'error;'; };
debug = function() { logger+= 'debug;'; };

$provide.provider('$log', $LogProvider);
$provide.value('$exceptionHandler', angular.mock.rethrow);
Expand All @@ -23,14 +30,16 @@ describe('$log', function() {
$window.console = {log: log,
warn: warn,
info: info,
error: error};
error: error,
debug: debug};
},
function($log) {
$log.log();
$log.warn();
$log.info();
$log.error();
expect(logger).toEqual('log;warn;info;error;');
$log.debug();
expect(logger).toEqual('log;warn;info;error;debug;');
}
));

Expand All @@ -44,7 +53,8 @@ describe('$log', function() {
$log.warn();
$log.info();
$log.error();
expect(logger).toEqual('log;log;log;log;');
$log.debug();
expect(logger).toEqual('log;log;log;log;log;');
}
));

Expand All @@ -55,6 +65,7 @@ describe('$log', function() {
$log.warn();
$log.info();
$log.error();
$log.debug();
}
));

Expand All @@ -64,22 +75,48 @@ describe('$log', function() {
log.apply = log.call =
warn.apply = warn.call =
info.apply = info.call =
error.apply = error.call = null;
error.apply = error.call =
debug.apply = debug.call = null;

$window.console = {log: log,
warn: warn,
info: info,
error: error};
error: error,
debug: debug};
},
function($log) {
$log.log.apply($log);
$log.warn.apply($log);
$log.info.apply($log);
$log.error.apply($log);
expect(logger).toEqual('log;warn;info;error;');
$log.debug.apply($log);
expect(logger).toEqual('log;warn;info;error;debug;');
})
);

describe("$log.debug", function () {

beforeEach(initService(false));

it("should skip debugging output if disabled", inject(
function(){
$window.console = {log: log,
warn: warn,
info: info,
error: error,
debug: debug};
},
function($log) {
$log.log();
$log.warn();
$log.info();
$log.error();
$log.debug();
expect(logger).toEqual('log;warn;info;error;');
}
));

});

describe('$log.error', function() {
var e, $log, errorArgs;
Expand Down

0 comments on commit 9e991dd

Please sign in to comment.