No, it can be simpler than that.

Sent from my iPad

> On May 4, 2014, at 10:55 AM, Matt Sicker <boa...@gmail.com> wrote:
> 
> This is starting to sound like we need a full-blown factory/context/logger 
> implementation of StatusLogger.
> 
> 
>> On 4 May 2014 12:46, Ralph Goers <rgo...@apache.org> wrote:
>> Also, that doesn't solve the case Remko mentioned of multiple web apps 
>> writing to a single file.
>> 
>> 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>
> 
> 
> 
> -- 
> Matt Sicker <boa...@gmail.com>

Reply via email to