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:
|
log:
|
||||||
level: 'info' # debug/info/warning/error
|
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:
|
search:
|
||||||
# Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
|
# Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
|
||||||
|
|
|
@ -76,6 +76,8 @@ storage:
|
||||||
|
|
||||||
log:
|
log:
|
||||||
level: 'info' # debug/info/warning/error
|
level: 'info' # debug/info/warning/error
|
||||||
|
rotation:
|
||||||
|
enabled : true
|
||||||
|
|
||||||
search:
|
search:
|
||||||
# Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
|
# 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 { mkdirpSync } from 'fs-extra'
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
import * as winston from 'winston'
|
import * as winston from 'winston'
|
||||||
|
import { FileTransportOptions } from 'winston/lib/winston/transports'
|
||||||
import { CONFIG } from '../initializers/config'
|
import { CONFIG } from '../initializers/config'
|
||||||
import { omit } from 'lodash'
|
import { omit } from 'lodash'
|
||||||
|
|
||||||
|
@ -45,6 +46,21 @@ const labelFormatter = winston.format.label({
|
||||||
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({
|
const logger = winston.createLogger({
|
||||||
level: CONFIG.LOG.LEVEL,
|
level: CONFIG.LOG.LEVEL,
|
||||||
format: winston.format.combine(
|
format: winston.format.combine(
|
||||||
|
@ -52,16 +68,7 @@ const logger = winston.createLogger({
|
||||||
winston.format.splat()
|
winston.format.splat()
|
||||||
),
|
),
|
||||||
transports: [
|
transports: [
|
||||||
new winston.transports.File({
|
new winston.transports.File(fileLoggerOptions),
|
||||||
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.Console({
|
new winston.transports.Console({
|
||||||
handleExceptions: true,
|
handleExceptions: true,
|
||||||
format: winston.format.combine(
|
format: winston.format.combine(
|
||||||
|
|
|
@ -83,7 +83,8 @@ const CONFIG = {
|
||||||
},
|
},
|
||||||
TRUST_PROXY: config.get<string[]>('trust_proxy'),
|
TRUST_PROXY: config.get<string[]>('trust_proxy'),
|
||||||
LOG: {
|
LOG: {
|
||||||
LEVEL: config.get<string>('log.level')
|
LEVEL: config.get<string>('log.level'),
|
||||||
|
ROTATION: config.get<boolean>('log.rotation.enabled')
|
||||||
},
|
},
|
||||||
SEARCH: {
|
SEARCH: {
|
||||||
REMOTE_URI: {
|
REMOTE_URI: {
|
||||||
|
|
Loading…
Reference in New Issue