Feature/logrotation (#1881)
* #1775 Configure the activation or deactivation of winston log rotation * Winston log rotation enabled by default #1775 * #1775 tslint correction * #1775 FileTransportOptions typed and configuration files * #1775 tslint correction * #1775 log.rotation.enabled configuration binding
This commit is contained in:
parent
dd2c2a52cc
commit
fcf4569f2d
|
@ -75,6 +75,8 @@ storage:
|
|||
|
||||
log:
|
||||
level: 'info' # debug/info/warning/error
|
||||
rotation:
|
||||
enabled : true # Enabled by default, if disabled make sure that 'storage.logs' is pointing to a folder handled by logrotate
|
||||
|
||||
search:
|
||||
# Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
|
||||
|
|
|
@ -76,6 +76,8 @@ storage:
|
|||
|
||||
log:
|
||||
level: 'info' # debug/info/warning/error
|
||||
rotation:
|
||||
enabled : true
|
||||
|
||||
search:
|
||||
# Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
import { mkdirpSync } from 'fs-extra'
|
||||
import * as path from 'path'
|
||||
import * as winston from 'winston'
|
||||
import { FileTransportOptions } from 'winston/lib/winston/transports'
|
||||
import { CONFIG } from '../initializers/config'
|
||||
import { omit } from 'lodash'
|
||||
|
||||
|
@ -45,6 +46,21 @@ const labelFormatter = winston.format.label({
|
|||
label
|
||||
})
|
||||
|
||||
const fileLoggerOptions: FileTransportOptions = {
|
||||
|
||||
filename: path.join(CONFIG.STORAGE.LOG_DIR, 'peertube.log'),
|
||||
handleExceptions: true,
|
||||
format: winston.format.combine(
|
||||
winston.format.timestamp(),
|
||||
jsonLoggerFormat
|
||||
)
|
||||
}
|
||||
|
||||
if (CONFIG.LOG.ROTATION) {
|
||||
fileLoggerOptions.maxsize = 1024 * 1024 * 12
|
||||
fileLoggerOptions.maxFiles = 20
|
||||
}
|
||||
|
||||
const logger = winston.createLogger({
|
||||
level: CONFIG.LOG.LEVEL,
|
||||
format: winston.format.combine(
|
||||
|
@ -52,16 +68,7 @@ const logger = winston.createLogger({
|
|||
winston.format.splat()
|
||||
),
|
||||
transports: [
|
||||
new winston.transports.File({
|
||||
filename: path.join(CONFIG.STORAGE.LOG_DIR, 'peertube.log'),
|
||||
handleExceptions: true,
|
||||
maxsize: 1024 * 1024 * 12,
|
||||
maxFiles: 20,
|
||||
format: winston.format.combine(
|
||||
winston.format.timestamp(),
|
||||
jsonLoggerFormat
|
||||
)
|
||||
}),
|
||||
new winston.transports.File(fileLoggerOptions),
|
||||
new winston.transports.Console({
|
||||
handleExceptions: true,
|
||||
format: winston.format.combine(
|
||||
|
|
|
@ -83,7 +83,8 @@ const CONFIG = {
|
|||
},
|
||||
TRUST_PROXY: config.get<string[]>('trust_proxy'),
|
||||
LOG: {
|
||||
LEVEL: config.get<string>('log.level')
|
||||
LEVEL: config.get<string>('log.level'),
|
||||
ROTATION: config.get<boolean>('log.rotation.enabled')
|
||||
},
|
||||
SEARCH: {
|
||||
REMOTE_URI: {
|
||||
|
|
Loading…
Reference in New Issue