Skip to content

logging should be consistent and no logging implementations should be added as a transient dependency #353

@xzel23

Description

@xzel23

Following problems:

  • slf4j-simple is added as a transient dependency. A library project should never add a dependency on a logger implementation as we don't know what implementation that uses ODF Toolkit will use.

  • a dependency on slf4j-api is added with the comment that Apache Jena needs it. If a dependency depends on a library, it is the responsibility of the dependency to declare it properly. If a logger implementation is needed for running tests, it should be included with "test" scope, and only one such implementation should be present. If different logging facades are used by dependencies, the corresponding bridging modules should be included with test scope.

  • ODF Toolkit itself mainly uses JUL logging with one class using SLF4J instead. All logging done by ODF Toolkit should use the same API.

Also, the project should consider whether to use one of the two common logging APIs instead of calling JUL directly as that causes performance issues when an application uses a different logging implementation. IMHO either log4j-api or slf4j-api should be used instead of calling JUL directly (and my preference would be log4j-api since bridging from slf4j to log4j is less performant than the other way around.

I'll fix the inconsistent logging calls and the dependency issues and if the project agrees on using either log4j-api or slf4j-api, I can do the necessary changes later.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions