Hi Dominik,

Although there are no dedicated tests for the file appender as such, I did 
run the test suite at the time I changed the code. The recent changes 
indtroduced with r1756284 ".NET Core improvements by Peter Jas - closes 
#30" broke a lot of tests becuse of calling `ToUpperInvariant` in string 
objects that can be null. I'll start another thread about that issue.
With that fixed, only a single test 
`EventLogAppenderTest.ActivateOptionsDisablesAppenderIfSourceDoesntExist` 
fails here, but this has nothing to do with the file appender change.

Notably the RollingFileAppender tests run without issues after my change.

Regards,
Jonas



Von:    Dominik Psenner <dpsen...@apache.org>
An:     log4net-dev@logging.apache.org
Datum:  22.08.2016 13:30
Betreff:        Re: Fix for FileAppender's TextWriter creation in OpenFile



Hi Jonas,
thanks for your patch! It looks sensible. Have you run the tests against 
it?
Cheers,Dominik
On 2016-08-22 12:27, jonas.ba...@rohde-schwarz.com wrote:
Hi, 

`FileAppender` has a vritual overload for the Method `SetQWForFiles` that 
takes a `Stream` and creates a StreamWriter from it. According to the API 
documentation 
""" 
This method can be overridden by sub classes that want to wrap the 
<see cref="Stream"/> in some way, for example to encrypt the output 
data using a <c>System.Security.Cryptography.CryptoStream</c>.         
""" 

Unfortunately, it doesn't get called. Instead it is inlined in `OpenFile`, 
so derived classes have no chance in wrapping the stream before it is 
passed to the writer. 
This trivial patch changes this. 

---------------------8<--------------8<----------------- 
--- C:/temp/FileAppender.cs-revBASE.svn003.tmp.cs        Sat Aug 13 
18:57:44 2016 
+++ C:/Users/BAEHR/Documents/log4net-trunk/src/Appender/FileAppender.cs   
     Mon Aug 22 11:59:41 2016 
@@ -1382 +1382 @@ namespace log4net.Appender 
-                                                SetQWForFiles(new 
StreamWriter(m_stream, m_encoding)); 
+                                                SetQWForFiles(m_stream); 
---------------------8<--------------8<----------------- 

Best Regards, 
Jonas 


Reply via email to