I'd avoid changing the semantics of existing methods.  I also favor 3. 
(initializeStrict?)

Sent from my iPhone

> On Apr 12, 2017, at 15:00, Matt Sicker <[email protected]> wrote:
> 
> This is a nice showcase for an Either data type similar to Optional, but
> with a value or an error.
> 
>> On 12 April 2017 at 00:41, Gary Gregory <[email protected]> wrote:
>> 
>> The problem with the API as it is now is that I have no idea if the API
>> did what I asked it to do. It does initialize log4j all right but not in a
>> way I expect.
>> 
>> I see that we could:
>> 
>> 1) make the current API throw an IllegalArgumentException that means "file
>> not found", this keeps the API signature the same.
>> 2) make the current API return null (but should it still initialize log4j
>> with the 'next' config file it finds?). Not great as this would likely
>> break some apps.
>> 3) add a new API that throws an exception that means 'config file not
>> found'
>> 4) add a new API that returns null
>> 
>> The nice thing about throwing an exception is that you can give a detailed
>> error message. Returning null tells you something is wrong, not what, still
>> a mystery.
>> 
>> So I prefer 3).
>> 
>> Regardless, we need some better Javadocs on the existing APIs... the
>> behavior is just too surprising IMO.
>> 
>> Thoughts?
>> 
>> Gary
>> 
>> 
>> 
>> On Tue, Apr 11, 2017 at 10:01 PM, Ralph Goers <[email protected]>
>> wrote:
>> 
>>> That’s a good point. It is a programmatic interface so it should return
>>> an error. But generally we want logging to do something reasonable other
>>> than fail, so it should either use whatever configuration it finds or use
>>> the default.
>>> 
>>> Ralph
>>> 
>>> On Apr 11, 2017, at 8:42 PM, Remko Popma <[email protected]> wrote:
>>> 
>>> I thought Gary needed a way to detect that the specified location didn't
>>> work. But perhaps a warning message is sufficient.
>>> 
>>> Sent from my iPhone
>>> 
>>> On Apr 12, 2017, at 10:05, Ralph Goers <[email protected]>
>>> wrote:
>>> 
>>> I'd prefer an error message but then have it continue with the current
>>> behavior.
>>> 
>>> Sent from my iPhone
>>> 
>>> On Apr 11, 2017, at 5:47 PM, Remko Popma <[email protected]> wrote:
>>> 
>>> I can see both sides of the argument.
>>> 
>>> Rather than changing the semantics of the existing method, what about
>>> adding a method `Configurator.initializeStrict(String, String)` which
>>> fails if the specified file doesn't exist? Not sure what the best way to
>>> fail is: return null or throw exception...
>>> 
>>> Sent from my iPhone
>>> 
>>> On Apr 12, 2017, at 9:13, Gary Gregory <[email protected]> wrote:
>>> 
>>> Hi All:
>>> 
>>> Using 2.8.2, I call org.apache.logging.log4j.
>>> core.config.Configurator.initialize(String, String) with a non-exiting
>>> file location.
>>> 
>>> The method does not return null because it found another log4j2.xml file
>>> on my classpath. So I get a LoggerContext but not what I expect...
>>> 
>>> That does not sound right to me, it should return null, and then I can
>>> look in the status logger to see what went wrong (if I happen to have it
>>> set to DEBUG in the log4j2.xml file it did find.)
>>> 
>>> Thoughts?
>>> 
>>> Gary
>>> 
>>> --
>>> E-Mail: [email protected] | [email protected]
>>> Java Persistence with Hibernate, Second Edition
>>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
>>> 
>>> <http://ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
>>> JUnit in Action, Second Edition
>>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>
>>> 
>>> <http://ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
>>> Spring Batch in Action
>>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
>>> <http://ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
>>> Blog: http://garygregory.wordpress.com
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>>> 
>>> 
>>> 
>> 
>> 
>> --
>> E-Mail: [email protected] | [email protected]
>> Java Persistence with Hibernate, Second Edition
>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
>> 
>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
>> JUnit in Action, Second Edition
>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>
>> 
>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
>> Spring Batch in Action
>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>> 
> 
> 
> 
> -- 
> Matt Sicker <[email protected]>
> 
> 
> 
> -- 
> Matt Sicker <[email protected]>

Reply via email to