hashgraph / hedera-services

Crypto, token, consensus, file, and smart contract services for the Hedera public ledger
Apache License 2.0
316 stars 138 forks source link

Provide SLF4J bridge for logging #15122

Open hendrikebbers opened 3 months ago

hendrikebbers commented 3 months ago

🆕🐥 First Timers Only

This issue is reserved for people who have never contributed to Hedera or any open source project in general. We know that creating a pull request (PR) is a major barrier for new contributors. The goal of this issue and all other issues labeled by 'good first issue' is to help you make your first contribution to Hedera.

👾 Description of the issue

The project has an internal logging framework that is defined by the swirlds-logging module. The source of the module that can be found here. A general documentation of the framework can be found here.

We decided to create our custom logging implementation since it is faster for our use cases than other frameworks and does not have the complexity of log4j2.

Since most of our dependencies use slf4j or log4j2 we decided to provide extensions for the logging framework that forward log4j2 and slf4j logging messages directly to our logging implementation. The module swirlds-logging-log4j-appender that can be found here already forwards all log4j logging to our logging system.

We need to do the same for slf4j.

Proposed Solution

The new module swirlds-logging-slf4j-appender needs to be created and structured similarly to swirlds-logging-log4j-appender. The module must provide a solution that forwards all slf4j log messages to our system. Like the given module, the new one must use Java SPI to load the extension automatically once it is on the classpath.

Needed skillset

While this issue is a good first issue that does not require any deep knowledge of Hedera and the internals of this repo, fixing it requires a lot of Java knowledge.o not recommend this issue for developers who Therefore, we d are new to Java.

📋 Step by step guide to do a contribution

If you have never contributed to an open source project at GitHub, the following step-by-step guide will introduce you to the workflow. More information and concrete samples for shell commands for each step can be found in our CONTRIBUTING.md file. A more detailed general documentation of the GitHub PR workflow can be found here.

🎉 Contribute to Hacktoberfest

Solve this issue as part of the Hacktoberfest event and get a chance to receive cool goodies like a T-Shirt. 🎽

🤔 Additional Information

If you have any questions, just ask us directly in this issue by adding a comment. You can join our community chat at Discord. A general manual about open-source contributions can be found here.

Ayush-Baranwal commented 2 months ago

hi @hendrikebbers I would like to work on this issue.

sebtiem commented 1 month ago

hey @hendrikebbers, sounds like a great issue for me to work on during the upcoming hackathon!

Ndacyayisenga-droid commented 1 month ago

@sebtiem are you still interested in this??, Otherwise I can take it up

hendrikebbers commented 1 month ago

@sebtiem already asked for the in-person hackathon tomorrow. So, I assume he is still interested since he has registered to the hackathon.