Skip to content

Node.js logger for aliyun SLS with minimal dependencies

License

Notifications You must be signed in to change notification settings

ccbeango/node-sls-logger

 
 

Repository files navigation

Logger for Aliyun SLS

Fork form sls-logger Just change the way of import protobuf file from sls.proto to sls.json, so that it works well with webpack

Travis CI Build Status NPM Version NPM Downloads Dependency Status

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
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".

About

Node.js logger for aliyun SLS with minimal dependencies

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 97.8%
  • JavaScript 2.2%