apiconnect-cli-logger
Advanced tools
Common logger for API Connect Toolkit CLI
Weekly downloads
Readme
The logger supports the following levels:
They are exposed as methods on the logger object and can be used as logger.info(...)
etc.
By default, logs are streamed to the console and to $APIC_CONFIG_PATH/apic.log
. If $APIC_CONFIG_PATH
is not set, it is logged to ~/.apiconnect/apic.log
.
The console logging stream is prettified by the formatter stream in lib/formatter.js
. To change the logging level of the console stream, you can set LOG_LEVEL
.
The file logging stream consists of raw JSON logs. To see it in a readable format, you can run cat ~/.apiconnect/apic.log | bunyan
. To change the logging level of the file stream, you can set FILE_LOG_LEVEL
.
The logger can be customized with environment variables or a configuration file. The logger will look for a custom configuration file defined by APIC_LOG_CONFIG_FILE
. If it does not exist, it looks in the default configuration directory: ~/.apiconnect/logger-config.js
. The configuration file can be JSON or JS (.json/.js).
The default configuration is merged with user specified configuration, but the user specified configuration takes precedence. Default streams (stdout/file logger) cannot be replaced.
The configuration file is JSON based. You can configure the bunyan
logger as well as the default bunyan filelogger
stream.
bunyan
:
Refer to bunyan README.
filelogger
:
key | default | description |
---|---|---|
size | 50m | The max file size of a log before rotation occurs. Supports 1024, 1k, 1m, 1g |
keep | 10 | The number of rotated log files to keep (including the primary log file). Additional logs are deleted no rotation. |
file | ~/.apiconnect/apic.log | The file log file to write data to. |
compress | false | Optionally compress rotated files with gzip. |
Sample JSON config file (.json):
{
"bunyan": {
"name": "custom logger",
"src": "false",
"streams": [{
"level": "debug",
"type": "file",
"path": "custom_file.log"
}]
},
"filelogger": {
"size": "1K",
"file": "custom.log",
"keep": 5
}
}
Sample JS config file (.js):
module.exports =
{
bunyan: {
name: 'userConnect',
streams: [{
level: 'debug',
type: 'file',
path: 'custom_file.log'
}]
},
filelogger: {
file: 'custom.log',
size: '50M',
keep: 10
}
};
Note: If you have both logger-config.json
and logger-config.js
, the JSON file takes priority.
The logger provides two methods to write to console logger.writeln
and logger.write
.
Both these methods will write to stdout and log output to the log file.
The logger provides logger.flush()
and logger.exit(exitCode)
methods which should be called before the CLI exits in
order to ensure that all logs are written to disk. Both methods return a Promise object.
LOG_LEVEL
specifies the lowest level of messages logged to the console stream.APIC_LOG_CONSOLE_LEVEL
FILE_LOG_LEVEL
specifies the lowest level of messages logged to the apic.log
log file.APIC_LOG_FILE_LEVEL
APIC_CONFIG_PATH
specifies the directory path containing the system logging configuration file logger-config.json
.APIC_LOG_CONFIG_FILE
specifies the path of the user-level logging configuration.FAQs
Common logger for API Connect Toolkit CLI
The npm package apiconnect-cli-logger receives a total of 321 weekly downloads. As such, apiconnect-cli-logger popularity was classified as not popular.
We found that apiconnect-cli-logger demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 11 open source maintainers collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.