diff --git a/src/files.js b/src/files.js index 615728ebb4dfee2e58576bfad31f85bb7d791a34..6ce97ed443298a09e4b82cf9a4e121c13c593951 100644 --- a/src/files.js +++ b/src/files.js @@ -88,7 +88,7 @@ export async function fetchFileWithHeaders ({ path, version }) { return fetchFileWithHeadersFromBaseUrl({ path, baseUrl, version }) } catch (err) { logger.debug(`[Files] File ${path} had a baseUrl but could not be found on that server: ${err}`) - if (err instanceof VersionMismatchError) throw err + if (isVersionMismatchError(err)) throw err } } diff --git a/src/plugins/logging.js b/src/plugins/logging.js deleted file mode 100644 index 8d17eda6d8bf0657c238c4d8c24778a426f360ed..0000000000000000000000000000000000000000 --- a/src/plugins/logging.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * @copyright Copyright (c) OX Software GmbH, Germany <info@open-xchange.com> - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OX App Suite. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>. - * - * Any use of the work other than as authorized under this license or copyright law is prohibited. - * - */ - -import fp from 'fastify-plugin' - -// This plugin is used to log requests and responses. -export default fp(async (fastify) => { - // Logs the request body with the 'trace' level - fastify.addHook('preHandler', function (req, reply, done) { - if (req.body) req.log.trace({ body: req.body }, 'parsed body') - done() - }) - - fastify.addHook('onError', (req, reply, { message, stack, statusCode }, done) => { - const error = { statusCode, stack } - reply.log.error(error, message || 'request errored') - done() - }) - - // Logs the request with the 'debug' level and also logs headers with the 'trace' level - fastify.addHook('onResponse', (req, reply, done) => { - const loggingOptions = { url: req.raw.url, res: reply, responseTime: reply.getResponseTime() } - if (process.env.LOG_LEVEL === 'trace') loggingOptions.headers = req.headers - reply.log.debug(loggingOptions, 'request completed') - done() - }) -}) diff --git a/src/routes/autohooks.js b/src/routes/autohooks.js index 6c0770ce8f29984f055f2e132952b92c824928e3..5467578a7aade801798728d0cbe777dad06495d7 100644 --- a/src/routes/autohooks.js +++ b/src/routes/autohooks.js @@ -30,13 +30,14 @@ export default async function (app, opts) { reply.header('version', version) reply.header('latest-version', latestVersion) reply.version = version + if (req.body) req.log.trace({ body: req.body }, 'parsed body') }) // Add a hook to log errors - app.addHook('onError', (req, reply, { message, stack, statusCode }, done) => { - const error = { statusCode, stack } - /* c8 ignore next */ - reply.log.error(error, message || 'request errored') + app.addHook('onError', (req, reply, fastifyError, done) => { + // @ts-ignore - AggregateError is not yet part of the types + const aggregatedErrors = fastifyError.errors instanceof Array ? fastifyError.errors : [fastifyError] + aggregatedErrors.forEach(error => error.err ? reply.log.error(error, error.err.message) : reply.log.error(error, error.message || 'request errored')) done() })