Skip to content

Commit fa83dbb

Browse files
committed
added logging level to the prefix
1 parent bcec6aa commit fa83dbb

File tree

6 files changed

+51
-35
lines changed

6 files changed

+51
-35
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "better-logging-base",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"repository": {
55
"type": "git",
66
"url": "https://github.com/better-js-logging/better-logging-base.git"

dist/logging-enhancer.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
config.logLevels = config.logLevels || [];
1818
return function() {
1919
if (levelPassesThreshold(context, level, config)) {
20-
var enhancedArguments = enhanceLogline(arguments, context, datetimePattern, datetimeLocale, prefixPattern);
20+
var enhancedArguments = enhanceLogline(arguments, context, level, datetimePattern, datetimeLocale, prefixPattern);
2121
loggingFunc.apply(null, enhancedArguments);
2222
return enhancedArguments;
2323
}
@@ -42,8 +42,8 @@
4242
}
4343
}
4444

45-
function enhanceLogline(args, context, datetimePattern, datetimeLocale, prefixPattern) {
46-
var prefix = generatePrefix(context, datetimePattern, datetimeLocale, prefixPattern);
45+
function enhanceLogline(args, context, level, datetimePattern, datetimeLocale, prefixPattern) {
46+
var prefix = generatePrefix(context, level, datetimePattern, datetimeLocale, prefixPattern);
4747
var processedArgs = maybeApplySprintf([].slice.call(args));
4848
return [prefix].concat([].slice.call(processedArgs));
4949

@@ -69,7 +69,7 @@
6969
}
7070
}
7171

72-
function generatePrefix(context, datetimePattern, datetimeLocale, prefixPattern) {
72+
function generatePrefix(context, level, datetimePattern, datetimeLocale, prefixPattern) {
7373
var dateStr = '';
7474
if (typeof moment !== 'undefined') {
7575
dateStr = moment().locale(datetimeLocale).format(datetimePattern);
@@ -79,13 +79,18 @@
7979
var timeStr = new Date().toTimeString().match(/^([0-9]{2}:[0-9]{2}:[0-9]{2})/)[0];
8080
dateStr = d.getDate() + '-' + (d.getMonth() + 1) + '-' + d.getFullYear() + ' ' + timeStr;
8181
}
82+
83+
for (var levelName in self.LEVEL) {
84+
if (self.LEVEL[levelName] === level) { break; }
85+
}
86+
levelName = levelName.toLowerCase();
8287

8388
if (typeof sprintf !== 'undefined') {
84-
return sprintf(prefixPattern, dateStr, context);
89+
return sprintf(prefixPattern, dateStr, context, levelName);
8590
}
8691
else {
87-
// use fixed layout: '%s::[%s]> '
88-
return dateStr + '::[' + context + ']> ';
92+
// use fixed layout: '%s::[%s]%s> '
93+
return dateStr + '::' + context + '::' + levelName + '> ';
8994
}
9095
}
9196
};

dist/logging-enhancer.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "better-logging-base",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"description": "> Utility to produce better logging statements including level management",
55
"main": "logging-enhancer.min.js",
66
"scripts": {

spec/logging-enhancer-spec.js

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,33 @@ describe('logging-enhancer', function() {
2424
});
2525

2626
it('should log simple strings with various prefix configurations', function() {
27-
var f_none = enh.enhanceLogging(dummy.trace, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '');
28-
var f_both = enh.enhanceLogging(dummy.trace, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%s(%s): ');
29-
var f_date1 = enh.enhanceLogging(dummy.warn, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%s: ');
30-
var f_date2 = enh.enhanceLogging(dummy.warn, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%1$s: ');
31-
var f_context = enh.enhanceLogging(dummy.error, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%2$s: ');
32-
var f_reversed = enh.enhanceLogging(dummy.debug, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%2$s(%1$s): ');
27+
var f_none = enh.enhanceLogging(dummy.trace, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '');
28+
var f_both = enh.enhanceLogging(dummy.trace, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%s(%s): ');
29+
var f_both_level = enh.enhanceLogging(dummy.trace, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%s(%s)%s: ');
30+
var f_date1 = enh.enhanceLogging(dummy.warn, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%s: ');
31+
var f_date2 = enh.enhanceLogging(dummy.warn, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%1$s: ');
32+
var f_context = enh.enhanceLogging(dummy.error, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%2$s: ');
33+
var f_reversed = enh.enhanceLogging(dummy.debug, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%2$s(%1$s): ');
34+
var f_level = enh.enhanceLogging(dummy.debug, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%3$s: ');
35+
var f_level_reversed = enh.enhanceLogging(dummy.debug, enh.LEVEL.TRACE, 'dummy', {}, 'dddd hh', 'en', '%2$s(%3$s): ');
3336

3437
var datestr = moment().format('dddd hh'); // as we can't mock momentjs, let's at least have an hour resolution
3538

36-
expect(f_none('Hello World!')) .toEqual(['', 'Hello World!']);
37-
expect(f_both('Hello World!')) .toEqual([datestr + '(dummy): ', 'Hello World!']);
38-
expect(f_both('%%')) .toEqual([datestr + '(dummy): ', '%%']);
39-
expect(f_date1('Hello World!')) .toEqual([datestr + ': ', 'Hello World!']);
40-
expect(f_date2('Hello World!')) .toEqual([datestr + ': ', 'Hello World!']);
41-
expect(f_context('Hello World!')) .toEqual(['dummy: ', 'Hello World!']);
42-
expect(f_reversed('Hello World!')) .toEqual(['dummy(' + datestr + '): ', 'Hello World!']);
43-
44-
expect(counters[TRACE]).toBe(3);
39+
expect(f_none('Hello World!')) .toEqual(['', 'Hello World!']);
40+
expect(f_both('Hello World!')) .toEqual([datestr + '(dummy): ', 'Hello World!']);
41+
expect(f_both('%%')) .toEqual([datestr + '(dummy): ', '%%']);
42+
expect(f_both_level('Hello World!')) .toEqual([datestr + '(dummy)trace: ', 'Hello World!']);
43+
expect(f_date1('Hello World!')) .toEqual([datestr + ': ', 'Hello World!']);
44+
expect(f_date2('Hello World!')) .toEqual([datestr + ': ', 'Hello World!']);
45+
expect(f_context('Hello World!')) .toEqual(['dummy: ', 'Hello World!']);
46+
expect(f_reversed('Hello World!')) .toEqual(['dummy(' + datestr + '): ', 'Hello World!']);
47+
expect(f_level('Hello World!')) .toEqual(['trace: ', 'Hello World!']);
48+
expect(f_level_reversed('Hello World!')) .toEqual(['dummy(trace): ', 'Hello World!']);
49+
50+
expect(counters[TRACE]).toBe(4);
4551
expect(counters[WARN]).toBe(2);
4652
expect(counters[ERROR]).toBe(1);
47-
expect(counters[DEBUG]).toBe(1);
53+
expect(counters[DEBUG]).toBe(3);
4854
});
4955

5056
it('should log with sprintf replacements', function() {
@@ -107,8 +113,8 @@ describe('logging-enhancer', function() {
107113
enh = new (require('../src/logging-enhancer.js').LoggingEnhancer)(undefined, moment);
108114

109115
var f = enh.enhanceLogging(dummy.debug, enh.LEVEL.TRACE, 'dummy', {}, 'YYYY', 'en', '');
110-
expect(f('Hello World!')).toEqual([moment().year() + '::[dummy]> ', 'Hello World!']);
111-
expect(f('%s %s!', 'Hello', 'World', [1,2,3])).toEqual([moment().year() + '::[dummy]> ', '%s %s!', 'Hello', 'World', [1,2,3]]);
116+
expect(f('Hello World!')).toEqual([moment().year() + '::dummy::trace> ', 'Hello World!']);
117+
expect(f('%s %s!', 'Hello', 'World', [1,2,3])).toEqual([moment().year() + '::dummy::trace> ', '%s %s!', 'Hello', 'World', [1,2,3]]);
112118

113119
expect(counters[DEBUG]).toBe(2);
114120
});

src/logging-enhancer.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
config.logLevels = config.logLevels || [];
1818
return function() {
1919
if (levelPassesThreshold(context, level, config)) {
20-
var enhancedArguments = enhanceLogline(arguments, context, datetimePattern, datetimeLocale, prefixPattern);
20+
var enhancedArguments = enhanceLogline(arguments, context, level, datetimePattern, datetimeLocale, prefixPattern);
2121
loggingFunc.apply(null, enhancedArguments);
2222
return enhancedArguments;
2323
}
@@ -42,8 +42,8 @@
4242
}
4343
}
4444

45-
function enhanceLogline(args, context, datetimePattern, datetimeLocale, prefixPattern) {
46-
var prefix = generatePrefix(context, datetimePattern, datetimeLocale, prefixPattern);
45+
function enhanceLogline(args, context, level, datetimePattern, datetimeLocale, prefixPattern) {
46+
var prefix = generatePrefix(context, level, datetimePattern, datetimeLocale, prefixPattern);
4747
var processedArgs = maybeApplySprintf([].slice.call(args));
4848
return [prefix].concat([].slice.call(processedArgs));
4949

@@ -69,7 +69,7 @@
6969
}
7070
}
7171

72-
function generatePrefix(context, datetimePattern, datetimeLocale, prefixPattern) {
72+
function generatePrefix(context, level, datetimePattern, datetimeLocale, prefixPattern) {
7373
var dateStr = '';
7474
if (typeof moment !== 'undefined') {
7575
dateStr = moment().locale(datetimeLocale).format(datetimePattern);
@@ -79,13 +79,18 @@
7979
var timeStr = new Date().toTimeString().match(/^([0-9]{2}:[0-9]{2}:[0-9]{2})/)[0];
8080
dateStr = d.getDate() + '-' + (d.getMonth() + 1) + '-' + d.getFullYear() + ' ' + timeStr;
8181
}
82+
83+
for (var levelName in self.LEVEL) {
84+
if (self.LEVEL[levelName] === level) { break; }
85+
}
86+
levelName = levelName.toLowerCase();
8287

8388
if (typeof sprintf !== 'undefined') {
84-
return sprintf(prefixPattern, dateStr, context);
89+
return sprintf(prefixPattern, dateStr, context, levelName);
8590
}
8691
else {
87-
// use fixed layout: '%s::[%s]> '
88-
return dateStr + '::[' + context + ']> ';
92+
// use fixed layout: '%s::[%s]%s> '
93+
return dateStr + '::' + context + '::' + levelName + '> ';
8994
}
9095
}
9196
};

0 commit comments

Comments
 (0)