Skip to content

make the log level of fallbackResponse configurable in the broker #1343

@cintolas

Description

@cintolas

Is your feature request related to a problem? Please describe.

The log level of fallbackResponse is WARN. This causes excessive logging. By adding in a fallbackResponse you have already proactively caught the exception.

An example is with moleculer-db. If a get returns a 404 (not in database) it is possible this gets logged as a warn.

Describe the solution you'd like

I think the log level for fallbackResponse should be set to debug since it you have explicitly made an effort to have a fallback.

However, from discussion in discord, it was referenced that this log level should be configurable

Describe alternatives you've considered

Making a configurable option would allow the default to be kept at WARN and you can change it to a different one if needed

Additional context

The warn level appears in 2 locations.

moleculer/src/middlewares/fallback.js

function handleContextFallback(ctx, err) { broker.logger.warn(The '${ctx.action.name}' request is failed. Return fallback response.`,
{ requestID: ctx.requestID, err: err.message }
);
broker.metrics.increment(METRIC.MOLECULER_REQUEST_FALLBACK_TOTAL, {
action: ctx.action.name
});
ctx.fallbackResult = true;

	if (isFunction(ctx.options.fallbackResponse)) return ctx.options.fallbackResponse(ctx, err);
	else return Promise.resolve(ctx.options.fallbackResponse);
}`

In wrapFallbackMiddleware

svc.logger.warn( The '${ctx.action.name}' request is failed. Return fallback response., { requestID: ctx.requestID, err: err.message } );

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions