Log Management
Log directory structure
Based on the directory specification, we have agreed on the following directory structure.
loggDir default is ~/logs
, that can be changed via global config, please check the following sections.
- ${loggDir}
- pandorajs
- deamon.log // Pandora.js deamon log
- metrics.log
- $appName
- nodejs_stdout.log // nodejs ouput log
- error.log // Application of self-defined log files
- $appName2 // application use egg framework
- nodejs_stdout.log
- common-error.log
- ...
Node. js standard output
- Pandora. js will write stdout at
${logsDir}/${appName}/nodejs_stdout.log
- log will be reload by date
Log default configuration
Log behavior can be configured by global configuration, like:
{
logger: {
logsDir: join(homedir(), 'logs'), // log directory
appLogger: { // Log configuration for each application, basically stdout
stdoutLevel: 'NONE', // Please make sure you do not change this configuration by default without output to the stdout of daemon
level: 'INFO' // Default record INFO information, such as application start or stop, is recommended to keep INFO
},
isolatedServiceLogger: false // Service log is scattered into a single log file, it is recommended to keep false
}
}
Log Level
- ALL - All level
- DEBUG - DEBUG and below
- INFO - INFO and below
- WARN - WARN and below
- ERROR - ERROR and below
- NONE - No output
Create custom logs
You can create by require('dorapan').getService('logger').createLogger(name, config)
,and config is defined as follows下:
{
dir: string; // log directory
stdoutLevel: string; // stdout level,default is ERROR
level: string; // the log of file ouput level,default is WARN
type: string; // the type of log cutting type, optional date and size,default is date
rotateDuration?: number; // the check during time of log file size to cut,unit is millisecond
maxFiles?: number; // The maximum number of file by size cut
maxFileSize?: number; // The maximum file size by sise cut
}
More detail LoggerService。
Connect to log service
Discussion:https://github.com/midwayjs/pandora/issues/50
Automatic log cleaning
Pandora.js has cut the log by day (or size), and does not provide log cleaning. You can configure a simple crontab
for~ / logs
, like similar tutorial。