From 21aebbde33be0d533d22d6fa2ce9a3dfbbd4a57f Mon Sep 17 00:00:00 2001 From: wood1986 Date: Tue, 13 Aug 2013 23:04:11 +0800 Subject: [PATCH 01/12] Update layouts.js --- lib/layouts.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/layouts.js b/lib/layouts.js index b171cee..35b2aee 100644 --- a/lib/layouts.js +++ b/lib/layouts.js @@ -166,6 +166,8 @@ function patternLayout (pattern, tokens) { // Pick up special cases if (format == "ISO8601") { format = dateFormat.ISO8601_FORMAT; + } else if (format == "ISO8601_WITH_TZ_OFFSET") { + format = dateFormat.ISO8601_WITH_TZ_OFFSET_FORMAT; } else if (format == "ABSOLUTE") { format = dateFormat.ABSOLUTETIME_FORMAT; } else if (format == "DATE") { From 2d177d517b77f87cedd165bdeb14500a26338152 Mon Sep 17 00:00:00 2001 From: wood1986 Date: Tue, 13 Aug 2013 23:04:52 +0800 Subject: [PATCH 02/12] Update date_format.js --- lib/date_format.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/date_format.js b/lib/date_format.js index bf36318..d75ce20 100644 --- a/lib/date_format.js +++ b/lib/date_format.js @@ -45,7 +45,7 @@ exports.asString = function(/*format,*/ date) { var vDay = addZero(date.getDate()); var vMonth = addZero(date.getMonth()+1); var vYearLong = addZero(date.getFullYear()); - var vYearShort = addZero(date.getFullYear().toString().substring(3,4)); + var vYearShort = addZero(date.getFullYear().toString().substring(2,4)); var vYear = (format.indexOf("yyyy") > -1 ? vYearLong : vYearShort); var vHour = addZero(date.getHours()); var vMinute = addZero(date.getMinutes()); From 1ed026a8d9cc901de6a8e3a466ffc44e29b9962d Mon Sep 17 00:00:00 2001 From: wood1986 Date: Wed, 14 Aug 2013 17:35:47 +0800 Subject: [PATCH 03/12] Update fileAppender-test.js --- test/fileAppender-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fileAppender-test.js b/test/fileAppender-test.js index cb4692a..9476ad6 100644 --- a/test/fileAppender-test.js +++ b/test/fileAppender-test.js @@ -222,7 +222,7 @@ vows.describe('log4js fileAppender').addBatch({ , logger; //this config file defines one file appender (to ./tmp-tests.log) //and sets the log level for "tests" to WARN - log4js.configure('test/log4js.json'); + log4js.configure('./test/log4js.json'); logger = log4js.getLogger('tests'); logger.info('this should not be written to the file'); logger.warn('this should be written to the file'); From 5755faa7bbad56fe1e52a81290ca47d886dd651d Mon Sep 17 00:00:00 2001 From: wood1986 Date: Thu, 15 Aug 2013 22:29:36 +0800 Subject: [PATCH 04/12] Update layouts-test.js --- test/layouts-test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/layouts-test.js b/test/layouts-test.js index 9af1242..dde6c97 100644 --- a/test/layouts-test.js +++ b/test/layouts-test.js @@ -197,6 +197,12 @@ vows.describe('log4js layouts').addBatch({ '%r should output time only': function(args) { test(args, '%r', '14:18:30'); }, + '%d{ISO8601_WITH_TZ_OFFSET} should output time only': function(args) { + test(args, '%d{ISO8601_WITH_TZ_OFFSET}', '2010-11-05T14:18:30'); + }, + '%d{yy.MM.dd.hh.mm.ss.sss} should output time only': function(args) { + test(args, '%d{yy.MM.dd.hh.mm.ss.sss}', '10.11.05.14.18.30.045'); + }, '%p should output the log level': function(args) { test(args, '%p', 'DEBUG'); }, From 5a167d853afbd9d786dc3d1e7775c212805617c6 Mon Sep 17 00:00:00 2001 From: wood1986 Date: Thu, 15 Aug 2013 22:29:52 +0800 Subject: [PATCH 05/12] Update date_format-test.js --- test/date_format-test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/date_format-test.js b/test/date_format-test.js index d4a5cb5..444446d 100644 --- a/test/date_format-test.js +++ b/test/date_format-test.js @@ -39,6 +39,12 @@ vows.describe('date_format').addBatch({ dateFormat.asString(dateFormat.ABSOLUTETIME_FORMAT, date), '14:31:30.005' ); + }, + 'should provide a custom format': function(date) { + assert.equal( + dateFormat.asString("O.SSS.ss.mm.hh.dd.MM.yy", date), + '+1100.005.30.31.14.11.01.10' + ); } } }).export(module); From 9e7218957427c06e1eeb49e067c34906eb1bed7e Mon Sep 17 00:00:00 2001 From: wood1986 Date: Thu, 15 Aug 2013 22:30:57 +0800 Subject: [PATCH 06/12] Update date_format-test.js --- test/date_format-test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/date_format-test.js b/test/date_format-test.js index 444446d..6085843 100644 --- a/test/date_format-test.js +++ b/test/date_format-test.js @@ -41,9 +41,10 @@ vows.describe('date_format').addBatch({ ); }, 'should provide a custom format': function(date) { + date.getTimezoneOffset = function() { return 120; }; assert.equal( dateFormat.asString("O.SSS.ss.mm.hh.dd.MM.yy", date), - '+1100.005.30.31.14.11.01.10' + '-0200.005.30.31.14.11.01.10' ); } } From 069ed3175905e0c28c2bbd0d434e869d8286a249 Mon Sep 17 00:00:00 2001 From: wood1986 Date: Thu, 15 Aug 2013 22:37:01 +0800 Subject: [PATCH 07/12] Update layouts-test.js --- test/layouts-test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/layouts-test.js b/test/layouts-test.js index dde6c97..db10318 100644 --- a/test/layouts-test.js +++ b/test/layouts-test.js @@ -198,10 +198,10 @@ vows.describe('log4js layouts').addBatch({ test(args, '%r', '14:18:30'); }, '%d{ISO8601_WITH_TZ_OFFSET} should output time only': function(args) { - test(args, '%d{ISO8601_WITH_TZ_OFFSET}', '2010-11-05T14:18:30'); + test(args, '%d{ISO8601_WITH_TZ_OFFSET}', '2010-12-05T14:18:30'); }, '%d{yy.MM.dd.hh.mm.ss.sss} should output time only': function(args) { - test(args, '%d{yy.MM.dd.hh.mm.ss.sss}', '10.11.05.14.18.30.045'); + test(args, '%d{yy.MM.dd.hh.mm.ss.SSS}', '10.12.05.14.18.30.045'); }, '%p should output the log level': function(args) { test(args, '%p', 'DEBUG'); From 112246dd55de41ce54a56043089e80e45359add8 Mon Sep 17 00:00:00 2001 From: wood1986 Date: Thu, 15 Aug 2013 22:39:59 +0800 Subject: [PATCH 08/12] Update layouts-test.js --- test/layouts-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/layouts-test.js b/test/layouts-test.js index db10318..aee28dc 100644 --- a/test/layouts-test.js +++ b/test/layouts-test.js @@ -198,7 +198,7 @@ vows.describe('log4js layouts').addBatch({ test(args, '%r', '14:18:30'); }, '%d{ISO8601_WITH_TZ_OFFSET} should output time only': function(args) { - test(args, '%d{ISO8601_WITH_TZ_OFFSET}', '2010-12-05T14:18:30'); + test(args, '%d{ISO8601_WITH_TZ_OFFSET}', '2010-12-05T14:18:30-0000'); }, '%d{yy.MM.dd.hh.mm.ss.sss} should output time only': function(args) { test(args, '%d{yy.MM.dd.hh.mm.ss.SSS}', '10.12.05.14.18.30.045'); From 613474eb441d016bfbfd18247e2f6a35d1977995 Mon Sep 17 00:00:00 2001 From: wood1986 Date: Thu, 15 Aug 2013 22:45:56 +0800 Subject: [PATCH 09/12] Update layouts-test.js --- test/layouts-test.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/test/layouts-test.js b/test/layouts-test.js index aee28dc..476628f 100644 --- a/test/layouts-test.js +++ b/test/layouts-test.js @@ -197,12 +197,6 @@ vows.describe('log4js layouts').addBatch({ '%r should output time only': function(args) { test(args, '%r', '14:18:30'); }, - '%d{ISO8601_WITH_TZ_OFFSET} should output time only': function(args) { - test(args, '%d{ISO8601_WITH_TZ_OFFSET}', '2010-12-05T14:18:30-0000'); - }, - '%d{yy.MM.dd.hh.mm.ss.sss} should output time only': function(args) { - test(args, '%d{yy.MM.dd.hh.mm.ss.SSS}', '10.12.05.14.18.30.045'); - }, '%p should output the log level': function(args) { test(args, '%p', 'DEBUG'); }, @@ -227,9 +221,11 @@ vows.describe('log4js layouts').addBatch({ test(args, '%d', '2010-12-05 14:18:30.045'); }, '%d should allow for format specification': function(args) { + test(args, '%d{ISO8601_WITH_TZ_OFFSET}', '2010-12-05T14:18:30-0000'); test(args, '%d{ISO8601}', '2010-12-05 14:18:30.045'); test(args, '%d{ABSOLUTE}', '14:18:30.045'); test(args, '%d{DATE}', '05 12 2010 14:18:30.045'); + test(args, '%d{yy MM dd hh mm ss}', '10 12 05 14 18 30'); test(args, '%d{yyyy MM dd}', '2010 12 05'); test(args, '%d{yyyy MM dd hh mm ss SSS}', '2010 12 05 14 18 30 045'); }, From 6df4753822ab34bf91b26f172f2302942522a252 Mon Sep 17 00:00:00 2001 From: wood1986 Date: Sun, 18 Aug 2013 01:36:07 +0800 Subject: [PATCH 10/12] Update layouts.js --- lib/layouts.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/layouts.js b/lib/layouts.js index 35b2aee..eb07c89 100644 --- a/lib/layouts.js +++ b/lib/layouts.js @@ -120,6 +120,7 @@ function messagePassThroughLayout (loggingEvent) { * - %r time in toLocaleTimeString format * - %p log level * - %c log category + * - %h hostname * - %m log data * - %d date in various formats * - %% % @@ -143,7 +144,7 @@ function messagePassThroughLayout (loggingEvent) { */ function patternLayout (pattern, tokens) { var TTCC_CONVERSION_PATTERN = "%r %p %c - %m%n"; - var regex = /%(-?[0-9]+)?(\.?[0-9]+)?([\[\]cdmnprx%])(\{([^\}]+)\})?|([^%]+)/; + var regex = /%(-?[0-9]+)?(\.?[0-9]+)?([\[\]cdhmnprx%])(\{([^\}]+)\})?|([^%]+)/; pattern = pattern || TTCC_CONVERSION_PATTERN; @@ -166,8 +167,6 @@ function patternLayout (pattern, tokens) { // Pick up special cases if (format == "ISO8601") { format = dateFormat.ISO8601_FORMAT; - } else if (format == "ISO8601_WITH_TZ_OFFSET") { - format = dateFormat.ISO8601_WITH_TZ_OFFSET_FORMAT; } else if (format == "ABSOLUTE") { format = dateFormat.ABSOLUTETIME_FORMAT; } else if (format == "DATE") { @@ -177,6 +176,10 @@ function patternLayout (pattern, tokens) { // Format the date return dateFormat.asString(format, loggingEvent.startTime); } + + function hostname() { + return os.hostname().toString(); + } function formatMessage(loggingEvent) { return formatLogData(loggingEvent.data); @@ -220,6 +223,7 @@ function patternLayout (pattern, tokens) { var replacers = { 'c': categoryName, 'd': formatAsDate, + 'h': hostname, 'm': formatMessage, 'n': endOfLine, 'p': logLevel, From cd286fa25fdada5e657d03afcfe57a5cc1201813 Mon Sep 17 00:00:00 2001 From: wood1986 Date: Sun, 18 Aug 2013 01:39:37 +0800 Subject: [PATCH 11/12] Update layouts-test.js --- test/layouts-test.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/layouts-test.js b/test/layouts-test.js index 476628f..c355bdd 100644 --- a/test/layouts-test.js +++ b/test/layouts-test.js @@ -209,6 +209,9 @@ vows.describe('log4js layouts').addBatch({ '%n should output a new line': function(args) { test(args, '%n', '\n'); }, + '%h should output hostname' : function(args) { + test(args, '%h', require('os').hostname().toString()); + }, '%c should handle category names like java-style package names': function(args) { test(args, '%c{1}', 'tests'); test(args, '%c{2}', 'of.tests'); From 788838199113d99cab42c5044c65287ea7e1429b Mon Sep 17 00:00:00 2001 From: wood1986 Date: Sun, 18 Aug 2013 01:43:48 +0800 Subject: [PATCH 12/12] Update layouts.js --- lib/layouts.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/layouts.js b/lib/layouts.js index eb07c89..9cfd035 100644 --- a/lib/layouts.js +++ b/lib/layouts.js @@ -167,6 +167,8 @@ function patternLayout (pattern, tokens) { // Pick up special cases if (format == "ISO8601") { format = dateFormat.ISO8601_FORMAT; + } else if (format == "ISO8601_WITH_TZ_OFFSET") { + format = dateFormat.ISO8601_WITH_TZ_OFFSET_FORMAT; } else if (format == "ABSOLUTE") { format = dateFormat.ABSOLUTETIME_FORMAT; } else if (format == "DATE") {