You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Go to file
Gareth Jones a136404021
bumping the version
11 years ago
examples Fixing issue #137 11 years ago
lib extra debug for failing module load 11 years ago
test improved test coverage 11 years ago
.bob.json fixing some lint issues 11 years ago
.gitignore merged util.format branch (fixes a lint error and simplifies the code) 11 years ago
.jshintrc fixing some lint issues 11 years ago
.npmignore added ignore files 13 years ago
.travis.yml added node 0.8 to travis config and package.json 12 years ago
0.7-changes added to-dos to changes list 11 years ago
README.md improved the readme 11 years ago
package.json bumping the version 11 years ago
writing-appenders.md added section on peer dependencies 11 years ago

README.md

log4js-node Build Status

This was a conversion of the log4js framework to work with node. It's changed a lot since then, but there are still plenty of the original parts involved.

Out of the box it supports the following features:

  • coloured console logging
  • file appender, with log rolling based on file size or date
  • multi-process logging (works fine with node's clusters)
  • configurable log message layout/patterns
  • different log levels for different log categories (make some parts of your app log as DEBUG, others only ERRORS, etc.)

NOTE: There have been a lot of changes in version 0.7.x, if you're upgrading from an older version, you should read 0.7-changes

installation

npm install log4js

usage

Minimalist version:

var log4js = require('log4js');
var logger = log4js.getLogger();
logger.debug("Some debug messages");

By default, log4js outputs to stdout with the coloured layout (thanks to masylum), so for the above you would see:

[2010-01-17 11:43:37.987] [DEBUG] default - Some debug messages

See the examples directory for lots of sample setup and usage code.

API

Log4js exposes two public functions: configure and getLogger. If you're writing your own appender, your code will get access to some internal APIs, see writing-appenders.

log4js.configure(config)

Configure takes a single argument. If that argument is a string, it is considered the path to a JSON file containing the configuration object. If the argument is an object, it must have the following fields:

  • appenders (Object) - this should be a map of named appenders to their configuration. At least one appender must be defined.
  • categories (Object) - this should be a map of logger categories to their levels and configuration. The "default" logger category must be defined, as this is used to route all log events that do not have an explicit category defined in the config. Category objects have two fields: * level - (String) the log level for that category: "trace", "debug", "info", "warn", "error", "fatal", "off" * appenders - (Array) the list of appender names to which log events for this category should be sent

The default configuration for log4js, the one used if configure is not called, looks like this:

{
  "appenders": {
      "console": { "type": "console" }
  },
  "categories": {
      "default": { level: "TRACE", appenders: [ "console" ] }
  }
}

Use of the default configuration can be overridden by setting the LOG4JS_CONFIG environment variable to the location of a JSON configuration file. log4js will use this file in preference to the defaults, if configure is not called. An example file can be found in test/log4js.json. An example config file with log rolling is in test/with-log-rolling.json.

log4js.getLogger([category])

  • category (String), optional. Category to use for log events generated by the Logger.

Returns a Logger instance. Unlike in previous versions, log4js does not hold a reference to Loggers so feel free to use as many as you like.

Logger

Loggers provide the following functions:

  • trace
  • debug
  • info
  • warn
  • error
  • fatal

All can take a variable list of arguments which are used to construct a log event. They work the same way as console.log, so you can pass a format string with placeholders. e.g.

logger.debug("number of widgets is %d", widgets);

Appenders

Log4js comes with file appenders included, which can be configured to roll over based on a time or a file size. Other appenders are available as separate modules:

There's also log4js-connect, for logging http access in connect-based servers, like express.

Documentation

See the wiki. Improve the wiki, please.

Contributing

Contributions welcome, but take a look at the rules first.

License

The original log4js was distributed under the Apache 2.0 License, and so is this. I've tried to keep the original copyright and author credits in place, except in sections that I have rewritten extensively.