https://github.com/innopals/node-sls-logger
Node.js logger for aliyun SLS with minimal dependencies
https://github.com/innopals/node-sls-logger
aliyun logger logging nodejs sls
Last synced: 9 months ago
JSON representation
Node.js logger for aliyun SLS with minimal dependencies
- Host: GitHub
- URL: https://github.com/innopals/node-sls-logger
- Owner: innopals
- License: mit
- Created: 2018-09-13T02:49:37.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2023-07-07T22:28:31.000Z (almost 3 years ago)
- Last Synced: 2025-09-05T02:48:10.921Z (10 months ago)
- Topics: aliyun, logger, logging, nodejs, sls
- Language: TypeScript
- Homepage:
- Size: 608 KB
- Stars: 16
- Watchers: 1
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Logger for Aliyun SLS
[](https://github.com/innopals/node-sls-logger/actions/workflows/node.js.yml)
[](https://npmjs.org/package/sls-logger)
[](https://npmjs.org/package/sls-logger)
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
```javascript
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.
``` js
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"](https://help.github.com/articles/creating-a-pull-request/).