<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:53:51 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[JAVA-1123] Use SLF4J instead of Java Util Logging for higher flexibility</title>
                <link>https://jira.mongodb.org/browse/JAVA-1123</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;Currently Mongo Java Driver uses JUL for logging. This causes a few troubles for developers that are using other logger implementations in their apps, specifically because JUL is part of core JDK and is hard to override. Also having multiple different loggers is just causing a structural mess.&lt;/p&gt;

&lt;p&gt;If a bridge API, such as SLF4J is used instead, it&apos;s possible to allow developers to use any type of logger provider, be it JUL, Log4J, JCL, Logback..&lt;/p&gt;

&lt;p&gt;The only thing that Java Driver needs is use SLF4J-API to create logger, the specific API implementation that developer chooses for their apps is going to do the rest of heavy lifting. SLF4J also provides bridges that override other log implementations, but due to the fact that JUL is core JDK - this operation is costy (very!).&lt;/p&gt;

&lt;p&gt;Another great thing with SLF4J is that it provides a much more optimised way of using the log statements - with placeholder support, placeholder value is only evaluated if and only if debug is enabled. Traditionally this is not the case and in apps requiring best performance, this can lead to performance improvement.&lt;/p&gt;

&lt;p&gt;As the design idea of mongo driver is not to have any 3rd party dependency, it could be possible to either include the tiny SLF4J API directly instead of the driver code or do something to check if SLF4J is present and use that instead.&lt;/p&gt;

&lt;p&gt;More Info about SLF4J: &lt;a href=&quot;http://www.slf4j.org/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.slf4j.org/&lt;/a&gt;&lt;br/&gt;
How Legacy loggers could be supported: &lt;a href=&quot;http://www.slf4j.org/legacy.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.slf4j.org/legacy.html&lt;/a&gt;&lt;/p&gt;</description>
                <environment>ALL</environment>
        <key id="114807">JAVA-1123</key>
            <summary>Use SLF4J instead of Java Util Logging for higher flexibility</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="alexej.kubarev@accedo.tv">Alexej Kubarev</reporter>
                        <labels>
                    </labels>
                <created>Wed, 26 Feb 2014 13:16:46 +0000</created>
                <updated>Thu, 6 Apr 2023 15:47:25 +0000</updated>
                            <resolved>Tue, 18 Mar 2014 19:13:14 +0000</resolved>
                                    <version>2.11.4</version>
                                    <fixVersion>3.0.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="869503" author="jeff.yemin" created="Tue, 31 Mar 2015 20:10:02 +0000"  >&lt;p&gt;Closing all resolved 3.0.0 issues, as 3.0.0 has been tagged and released.&lt;/p&gt;</comment>
                            <comment id="519023" author="alexej.kubarev@accedo.tv" created="Wed, 19 Mar 2014 07:56:30 +0000"  >&lt;p&gt;Sounds like a great solution! Can&apos;t wait for 3.0 to use this as we simply cannot get JUL to work properly in our app (most likely to app specifics).&lt;/p&gt;</comment>
                            <comment id="518622" author="jeff.yemin" created="Tue, 18 Mar 2014 19:13:04 +0000"  >&lt;p&gt;SLF4J will be used if it&apos;s detected on the classpath.  Otherwise, the driver will fall back to java.util.logging.&lt;/p&gt;</comment>
                            <comment id="518615" author="xgen-internal-githook" created="Tue, 18 Mar 2014 19:09:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-1123&quot; title=&quot;Use SLF4J instead of Java Util Logging for higher flexibility&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-1123&quot;&gt;&lt;del&gt;JAVA-1123&lt;/del&gt;&lt;/a&gt;: Log using SLF4J API if available, otherwise fall back to JUL.&lt;br/&gt;
Updated all the former users of JUL logging to use the new Logger interface provided by the driver.&lt;br/&gt;
Use Logback when running tests.&lt;br/&gt;
Branch: 3.0.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/3748341e151cd1f614df651d8beecf7aaa824f8f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/3748341e151cd1f614df651d8beecf7aaa824f8f&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrga3j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8537</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>