Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ideas for tinylog 3.0 #130

Open
pmwmedia opened this issue Jan 6, 2020 · 0 comments
Open

Ideas for tinylog 3.0 #130

pmwmedia opened this issue Jan 6, 2020 · 0 comments
Labels
Milestone

Comments

@pmwmedia
Copy link
Member

pmwmedia commented Jan 6, 2020

Introduce tinylog-core artifact

Core functionality should be moved from tinylog-api to a new tinylog-core artifact. In tinylog 2, tinylog-api-kotlin, tinylog-api-scala, and tinylog-impl requires tinylog-api as dependency. This leads to some avoidable mistakes of using tinylog. For example, many Kotlin developers import org.tinylog.Logger instead of org.tinylog.kotlin.Logger by accident.

Use standard service loader

tinylog's custom service loader implementation makes trouble when building native images with Graal VM, requires customs rules for ProGuard, and makes it very hard to implement services in Kotlin. Switching to the standard Java service loader would solve these problems. However, this means that builders have to be introduced for all services that require parameters.

Make configuration typesafe compatible

Currently, dirty hacks are requires for using typesafe-config with tinylog as tinylog's writer configurations cannot be translated to YAML. Changing the syntax from writer = <name> to writer.type = <name> would solve this issue.

Convert dynamic path segments into services

In tinylog 2, it is not possible to implement custom dynamic path segments for the rolling file writer.

More formattable types

Currently, tinylog can only format numbers in logging messages. Dates should also be formattable out-of-the-box. Additionally, it would be nice, if custom formatters for additional types could be registered as services.

Align message format and logging format patterns

For message format patterns and logging format patterns, curly brackets should be escaped by single quotes ('). Maybe even the same algorithm could be used for parsing both.

Report invalid properties

A large percentage of questions and bug reports are caused by using configuration properties in the wrong place. To avoid such problems, tinylog 3 could report unsupported properties as a warning when loading the configuration.

Merge all three file writers into one

Currently there are three different file writers: file, shared file, and rolling file. These could be merged into a single file writer to simply the configuration from the user's perspective.

Improve tests

Switch from JUnit 4 to JUnit 5 and write better testable code without using PowerMock.

Multi-release JARs

Migrate to multi-release JARs for supporting legacy Java 8 and modern Java 9+.

Replace tinylog-jul and tinylog-jboss by tinylog-slf4j

All modern web and application servers including Spring Boot should support SLF4J nowadays. Having only a single adapter would simplify the implementation as well as the usage.

@pmwmedia pmwmedia added the epic label Jan 6, 2020
@pmwmedia pmwmedia pinned this issue Jan 9, 2020
@pmwmedia pmwmedia unpinned this issue Jan 9, 2020
@pmwmedia pmwmedia added this to the 3.0 milestone Apr 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

1 participant