eclipse-pass / pass-deposit-services

Deposit Services are responsible for the transfer of custodial content and metadata from end users to repositories.
Apache License 2.0
1 stars 4 forks source link

Support runtime configuration of logging levels #259

Closed emetsger closed 5 years ago

emetsger commented 5 years ago

Upon startup Deposit Services will evaluate environment variables or system properties in the form of PASS_DEPOSIT_LOG_<logger name>=<LEVEL> or pass.deposit.log.<logger name>=<LEVEL>, respectively.

Accepted values of <LEVEL> are:

Accepted values of <logger name> are any name that would be used to instantiate an SLF4J Logger instance or designate a package-level log level; typically a package name or a class name:

If a <logger> definition already exists in logback.xml for a given <logger name>, the Logger is simply updated to the new log level. If no <logger> definition exists for a given <logger name>, Deposit Services will create a new Logger, with additivity equal to false, and use the STDERR appender (defined in logback.xml) for its appender.

N.B.: updates logback-classic to a compile-time dependency instead of a runtime dependency.

emetsger commented 5 years ago

This can be closed. Spring-Boot allows changing logging levels by adding env vars (or their system property equivalents) prefixed as LOGGING_LEVEL_<logger name>.

E.g.

LOGGING_LEVEL_org_springframework=WARN
LOGGING_LEVEL_WORKERS_LOGGER=TRACE
LOGGING_LEVEL_org_dataconservancy_pass_deposit=TRACE
LOGGING_LEVEL_org_dataconservancy_pass_deposit_client=TRACE
LOGGING_LEVEL_edu_jhu_library_pass_deposit_provider=DEBUG

No additional code or work is required to support this.