diff --git a/lib/layouts.js b/lib/layouts.js index 9cfd035..389e7aa 100644 --- a/lib/layouts.js +++ b/lib/layouts.js @@ -125,6 +125,7 @@ function messagePassThroughLayout (loggingEvent) { * - %d date in various formats * - %% % * - %n newline + * - %z pid * - %x{} add dynamic tokens to your log. Tokens are specified in the tokens parameter * You can use %[ and %] to define a colored block. * @@ -211,6 +212,10 @@ function patternLayout (pattern, tokens) { return '%'; } + function pid() { + return process.pid; + } + function userDefined(loggingEvent, specifier) { if (typeof(tokens[specifier]) !== 'undefined') { if (typeof(tokens[specifier]) === 'function') { @@ -232,6 +237,7 @@ function patternLayout (pattern, tokens) { 'r': startTime, '[': startColour, ']': endColour, + 'z': pid, '%': percent, 'x': userDefined }; diff --git a/test/layouts-test.js b/test/layouts-test.js index 00a3d6c..db6ba56 100644 --- a/test/layouts-test.js +++ b/test/layouts-test.js @@ -217,6 +217,9 @@ vows.describe('log4js layouts').addBatch({ '%h should output hostname' : function(args) { test(args, '%h', os.hostname().toString()); }, + '%z should output pid' : function(args) { + test(args, '%z', process.pid); + }, '%c should handle category names like java-style package names': function(args) { test(args, '%c{1}', 'tests'); test(args, '%c{2}', 'of.tests');