diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 309eade25..97982d664 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -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 diff --git a/packages/xo-server/config.toml b/packages/xo-server/config.toml index d7aedd5cd..f224aa103 100644 --- a/packages/xo-server/config.toml +++ b/packages/xo-server/config.toml @@ -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] diff --git a/packages/xo-server/src/xo-mixins/logs/index.mjs b/packages/xo-server/src/xo-mixins/logs/index.mjs index 1dbc35e63..a00c9e30c 100644 --- a/packages/xo-server/src/xo-mixins/logs/index.mjs +++ b/packages/xo-server/src/xo-mixins/logs/index.mjs @@ -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) {