I wonder how tricky such a refactoring would be. I could also imagine an enum listing all possible config locations and an API that takes an enum var arg for where to look. The default would be look everywhere. We getting out in left field WRT logging here... but it is still important IMO.
Gary On Apr 12, 2017 8:19 AM, "Remko Popma" <[email protected]> wrote: The javadoc doesn't tell the full story here, which is that the current method searches the classpath next if the specified file doesn't exist. I guess it returns null after exhausting all options. Gary wants a way to stop in the middle. Sent from my iPhone > On Apr 12, 2017, at 17:53, Mikael Ståldal <[email protected]> wrote: > > Given that the Javadoc since 1,5 years ago says: > > @return The LoggerContext or null if an error occurred (check the status > logger) > > I think it would be fine to return null if the given file is not found. > > On Wed, Apr 12, 2017 at 10:40 AM, Gary Gregory <[email protected]> > wrote: > >> On Wed, Apr 12, 2017 at 1:31 AM, Remko Popma <[email protected]> >> wrote: >> >>> I'd avoid changing the semantics of existing methods. I also favor 3. >>> (initializeStrict?) >>> >> >> Not a great method name but I am hard-pressed to come up with a better >> name: >> >> - initializeStrict >> - initializeChecked >> - initializeValidate >> - initializeValid >> - initializeVerify >> - initializeIfFound >> - initializeCleanly >> >> ? >> >> Gary >> >> >>> >>> 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=31ecd1f6b6d1eaf8886ac902a24de4 >> 18%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=31ecd1f6b6d1eaf8886ac902a24de4 >> 18%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]> >>> >> >> >> >> -- >> 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=31ecd1f6b6d1eaf8886ac902a24de4 18%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 >> > > > > -- > [image: MagineTV] > > *Mikael Ståldal* > Senior software developer > > *Magine TV* > [email protected] > Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > > Privileged and/or Confidential Information may be contained in this > message. If you are not the addressee indicated in this message > (or responsible for delivery of the message to such a person), you may not > copy or deliver this message to anyone. In such case, > you should destroy this message and kindly notify the sender by reply > email.
