feat(xo-server): logging is now dynamically configurable

This commit is contained in:
Julien Fontanet 2021-08-12 17:30:56 +02:00
parent f5111c0f41
commit f20d5cd8d3
3 changed files with 21 additions and 1 deletions

View File

@ -34,5 +34,5 @@
- @xen-orchestra/log minor
- @xen-orchestra/mixins patch
- xo-server-auth-ldap patch
- xo-server patch
- xo-server minor
- xo-web minor

View File

@ -131,6 +131,13 @@ port = 80
[http.mounts]
'/' = '../xo-web/dist'
[logs]
# Display all logs matching this filter, regardless of their level
#filter = 'xo:load-balancer'
# Display all logs with level >=, regardless of their namespace
level = 'info'
[plugins]
[remoteOptions]

View File

@ -1,3 +1,5 @@
import transportConsole from '@xen-orchestra/log/transports/console.js'
import { configure } from '@xen-orchestra/log/configure.js'
import { defer, fromEvent } from 'promise-toolbox'
import LevelDbLogger from './loggers/leveldb.mjs'
@ -7,6 +9,17 @@ export default class Logs {
this._app = app
app.hooks.on('clean', () => this._gc())
const transport = transportConsole()
app.config.watch('logs', ({ filter, level }) => {
configure([
{
filter: [process.env.DEBUG, filter],
level,
transport,
},
])
})
}
async _gc(keep = 2e4) {