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:
Nassim Bounouas 2019-06-11 14:30:44 +02:00 committed by Chocobozzz
parent dd2c2a52cc
commit fcf4569f2d
4 changed files with 23 additions and 11 deletions

View File

@ -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

View File

@ -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

View File

@ -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(

View File

@ -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: {