Skip to content

Latest commit

 

History

History
72 lines (60 loc) · 3.44 KB

README.md

File metadata and controls

72 lines (60 loc) · 3.44 KB

Logger for Aliyun SLS

Node.js CI NPM Version NPM Downloads

The nodejs logger for aliyun SLS with minimum dependencies.

Configuration

Config Name Default Type Required Description
accessKey string true Your access key to SLS
accessSecret string true Your secret to access SLS
securityToken string false Your STS security token
endpoint string true Your SLS endpoint, e.g. example.cn-hangzhou.log.aliyuncs.com
logstore string true Your logstore name
source string false Source for your logs
topic string false Topic for your logs
hashkey string false
compress false boolean false Use lz4 to compress log payload
tags key-value pair false Extra tags for your logs
level INFO string / number false Log level
disabled false boolean false Disable sls and log to stdout

Note: if your configuration is incorrect(fail to get logstore), all logs will be written to stdout.

Usage

const logger = new SlsLogger({
  endpoint: "example.cn-hangzhou.log.aliyuncs.com",
  accessKey: "your_access_key",
  accessSecret: "your_access_secret",
  logstore: "your_logstore",
  source: "test",
  topic: "test",
  compress: true,
  level: "INFO",
  disabled: true,
});

logger.info(
  "Hello world!",
  new Date(),
  function () { "abc"; },
  { a: 1, b: { c: 1 }, d: "123", e: false },
  new Object(),
  [1, 2, 3, "abc", false, null, undefined, new Error("error1")],
  SlsLogger.createField("module", "main"),
  1234,
  true,
  null,
  undefined,
  new Error("error2")
);

And you can pass a function as log message generator to improve performance; it will not be called unless the log level is enabled.

logger.debug(
  () => "Debug message from generator.",
  SlsLogger.createField("module", "debug")
);
// Set log level on the fly, e.g. through user signal or rest api.
logger.setLevel("DEBUG");

Contributing

This project welcomes contributions from the community. Contributions are accepted using GitHub pull requests. If you're not familiar with making GitHub pull requests, please refer to the GitHub documentation "Creating a pull request".