That is what I was doing yesterday before I got your "haha" email.
Ralph > On May 4, 2014, at 9:53 AM, Matt Sicker <boa...@gmail.com> wrote: > > So how about adding a check at construction checking against System.out and > System.err? Really, once you start messing with those streams, you can't be > sure they'll ever be closed until the JVM stops or you manually close it. > > >> On 4 May 2014 09:36, Ralph Goers <rgo...@apache.org> wrote: >> I see two choices here - maintain a use count or just let the OS close the >> files. >> >> The second would be pretty easy to do once we move the web stuff to its own >> module as it can add a property that the console Appender would look for. >> >> The first option is probably better if it could be made to work properly. >> >> Ralph >> >>> On May 4, 2014, at 6:38 AM, Bruce Brouwer <bruce.brou...@gmail.com> wrote: >>> >>> This is what I was starting to investigate with LOG4J2-609. >>> >>> I don't think this is quite there yet. For one, in >>> StatusConsoleListener.close(), System.out and System.err can change over >>> time, so doing the != check might still close something that at one time >>> was System.out but no longer is. >>> >>> Also, a StatusConsoleListener is shared among different JSONConfiguration >>> and XMLConfiguration instances (think about multiple WARs in a Tomcat >>> instance where log4j is in Tomcat's shared lib directory). If we undeployed >>> one of those WARs, it would shutdown the StatusConsoleListener that was >>> shared with the other WAR deployments. >>> >>> Also think about where some of these WARs wanted to use System.out and >>> others want to use a log file for status logging. Because of the way these >>> shared loggers are found, only the first StatusConsoleListener registered >>> would actually take effect. So sometimes when you start Tomcat, status logs >>> go to System.out, other times they go to a log file. I'd hate having to >>> debug that one if I didn't know about this issue. >>> >>> I have an idea of how to address this, but it unfortunately isn't as simple >>> as closing the StatusConsoleListener. >>> >>> >>>> On Sat, May 3, 2014 at 10:04 PM, Matt Sicker <boa...@gmail.com> wrote: >>>> Hooray, we've finally figured out the bug. :) >>>> >>>> >>>>> On 3 May 2014 19:49, Remko Popma <remko.po...@gmail.com> wrote: >>>>> I just updated from SVN and all tests now pass. >>>>> The build works now. Thanks! >>>>> >>>>> >>>>>> On Sun, May 4, 2014 at 7:55 AM, Matt Sicker <boa...@gmail.com> wrote: >>>>>> I just fixed it in r1592291 haha >>>>>> >>>>>> >>>>>>> On 3 May 2014 17:54, Ralph Goers <ralph.go...@dslextreme.com> wrote: >>>>>>> Yes. It cause them to close. Anything written to System.out or >>>>>>> System.err will fail. >>>>>>> >>>>>>>> On May 3, 2014, at 3:51 PM, Matt Sicker <boa...@gmail.com> wrote: >>>>>>>> >>>>>>>> Does closing them do anything? >>>>>>>> >>>>>>>> >>>>>>>>> On 3 May 2014 17:10, Ralph Goers <ralph.go...@dslextreme.com> wrote: >>>>>>>>> Perhaps we need a StatusFileListerner when writing to a file? >>>>>>>>> >>>>>>>>> Ralph >>>>>>>>> >>>>>>>>>> On May 3, 2014, at 3:03 PM, Ralph Goers <ralph.go...@dslextreme.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> System.out or System.err should never be closed. >>>>>>>>>> >>>>>>>>>> Ralph >>>>>>>>>> >>>>>>>>>>> On May 3, 2014, at 10:59 AM, Matt Sicker <boa...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>> I've implemented Closeable on StatusListener in r1592258. Please >>>>>>>>>>> try out the unit tests again and let me know if this solves the >>>>>>>>>>> issue on Windows. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> On 3 May 2014 12:30, Matt Sicker <boa...@gmail.com> wrote: >>>>>>>>>>>> I think this is actually a bug. StatusListener should implement >>>>>>>>>>>> Closeable, and when the listeners are cleared, it should loop >>>>>>>>>>>> through and close them before clearing the list of listeners. >>>>>>>>>>>> Otherwise, files can stay opened and Windows still hasn't figured >>>>>>>>>>>> out how to handle that. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> On 3 May 2014 11:22, Remko Popma <remko.po...@gmail.com> wrote: >>>>>>>>>>>>> Thanks, commenting out that test to verify my changes was exactly >>>>>>>>>>>>> what I was doing now... :-) >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> On Sun, May 4, 2014 at 1:20 AM, Ralph Goers >>>>>>>>>>>>>> <ralph.go...@dslextreme.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Oh, and if you are trying to do some work just comment out the >>>>>>>>>>>>>> @Test of the failing test - but don’t commit that. >>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On May 3, 2014, at 9:19 AM, Ralph Goers >>>>>>>>>>>>>>> <ralph.go...@dslextreme.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> That happens because the file is still being referenced by >>>>>>>>>>>>>>> something when it is trying to delete it. It should be because >>>>>>>>>>>>>>> the file is open but I recall reading that Windows sometimes >>>>>>>>>>>>>>> holds on to file references longer than it should. This was >>>>>>>>>>>>>>> probably caused by the changes Matt made to the unit test >>>>>>>>>>>>>>> framework a month or so ago. I will bring up my Windows VM and >>>>>>>>>>>>>>> take a look at it this afternoon. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On May 3, 2014, at 8:58 AM, Remko Popma >>>>>>>>>>>>>>>> <remko.po...@gmail.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Yes, windows 7. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Sun, May 4, 2014 at 12:54 AM, Ralph Goers >>>>>>>>>>>>>>>>> <ralph.go...@dslextreme.com> wrote: >>>>>>>>>>>>>>>>> FileOutputTest was failing for me last week and I thought I >>>>>>>>>>>>>>>>> fixed it. But it was failing because the file was empty, not >>>>>>>>>>>>>>>>> because it couldn’t be deleted. I guess you must be running >>>>>>>>>>>>>>>>> on Windows? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On May 3, 2014, at 8:44 AM, Remko Popma >>>>>>>>>>>>>>>>> <remko.po...@gmail.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> > When I run mvn clean install, I get this problem: >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > Failed tests: >>>>>>>>>>>>>>>>> > FileOutputTest.testConfig Could not delete >>>>>>>>>>>>>>>>> > target\status.log, last modifed 14/05/04 0:27 >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > FileOutputTest has a "CleanFiles" rule that seems to fail: >>>>>>>>>>>>>>>>> > public RuleChain rules = RuleChain.outerRule(new >>>>>>>>>>>>>>>>> > CleanFiles(STATUS_LOG)).around(new >>>>>>>>>>>>>>>>> > InitialLoggerContext(CONFIG)); >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > How do I fix this? >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > Remko >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> --------------------------------------------------------------------- >>>>>>>>>>>>>>>>> To unsubscribe, e-mail: >>>>>>>>>>>>>>>>> log4j-dev-unsubscr...@logging.apache.org >>>>>>>>>>>>>>>>> For additional commands, e-mail: >>>>>>>>>>>>>>>>> log4j-dev-h...@logging.apache.org >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Matt Sicker <boa...@gmail.com> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Matt Sicker <boa...@gmail.com> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Matt Sicker <boa...@gmail.com> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Matt Sicker <boa...@gmail.com> >>>> >>>> >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>> >>> >>> >>> -- >>> >>> Bruce Brouwer > > > > -- > Matt Sicker <boa...@gmail.com>