-
Notifications
You must be signed in to change notification settings - Fork 998
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
Standardize logging libraries for Java components #277
Comments
Bringing some rationale into context here, @davidheryanto pointed out that SLF4J is recommended for Beam. Practically speaking I believe this means library modules in Feast should use the SLF4J API (only |
Reopening as I think #430 hasn't completely addressed this:
I guess my acceptance criterion for closing this issue would be:
If there are Feast dependencies which use the Log4j (2) APIs, we should take care of the bridging so that they don't need to think about all this. |
Agree that #430 doesn't fully fix this issue. All that did was remove any impl from ingestion and standardise on log4j impl for core and serving to give them both JSON logging and env conf. The link you posted suggests using log4j2 API, not "SLF4J as the implementation (and API)". Given Dataflow will work with log4j or slf4j, I don't think it matters which we standardise on. However, since log4j2 offers more functionality (which we are using in Alternatively we could stick to slf4j just for ingestion and use log4j for core + serving. Also note that the feast java sdk has an import of slf4j, though the instance is not used. I think I would prefer slf4j as a more standard api dependency for a library but it could be removed altogether. Happy to make the changes if we decide on a forward path. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
(For the record, my intention for the SO link I shared was for its objective summary info, not its (biased) recommendation). I don't have a particularly strong opinion on which to use, and frankly I wish I could have some of my life back that has gone to the age-old pissing contest of Java logging frameworks and finding libraries that include concrete impls that require exclusions… I would just like a clear guideline stating what to use, per module if mixing is really justified.
I guess we should stay with things as they are, and document it. I'd agree that slf4j-api still seems much more established for a library like the SDK at this point in time. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Does this issue still require any work? I'd be happy to help wrap this one up |
@woop I'm happy to lean in here, if this still needs any work |
Hey @danielsiwiec. Happy for contributions here if you want to take a stab at it. This issue has gone under the radar for quite some time. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Currently there is a mix of logging libraries being used in the Java components (ingestion, serving, core). We currently used both SLF4J and Log4j2.
The plan is to standardize on only SLF4J, and this issue tracks the work item.
The text was updated successfully, but these errors were encountered: