At this point I usually quote Hector Correa:
<http://hectorcorrea.com/blog/log4net-thread-safe-but-not-process-safe> http://hectorcorrea.com/blog/log4net-thread-safe-but-not-process-safe You can verify that log4net is indeed thread safe with a 3 liner console application. However, most people confuse thread safety with process safety. log4net is like many other programs - not process safe and that has been written down in the FAQ several years ago: <http://logging.apache.org/log4net/release/faq.html#single-file> http://logging.apache.org/log4net/release/faq.html#single-file If log4net does not what you want it to do, then youre probably using it in a way it was not intended to be used. Von: Rafael Thome Guimaraes [mailto:p-rguimar...@bvmf.com.br] Gesendet: Freitag, 6. September 2013 00:52 An: Bill Sorensen; Log4NET User Betreff: RE: Thread Safety in Log Hi Bill! Thanks for your answer! My case is exactly the one of the l4ndash link you passed. I am using RollingFileAppender through the ILog interface. [ ] //Class field private static ILog log = LogManager.GetLogger(typeof(RSFNMessageBatchService)); [ ] //In the class constructor log4net.GlobalContext.Properties["LogName"] = AppSettings.GetValue("logFileName"); log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(AppSettings.GetValue("log4NetConfigFile"))); log.Logger.Repository.Configured = true; [ ] //Log call log.Debug(mensagemLog); [ ] In another file I just got, The trimmed message and the trimming message came from the same thread! That eliminates the Thread Safety hypothesis. Any ideas? Thanks, Rafael Thomé Guimarães Analista-Programador DO-CBCN / DI-CRAD - MIDDLEWARE ' +55 11 2565-7006 * p-rguimar...@bvmf.com.br <mailto:p-bpedr...@bvmf.com.br> www.bmfbovespa.com.br <http://www.bmfbovespa.com.br/> Evite imprimir. Colabore com o Meio Ambiente! From: Bill Sorensen [mailto:bsoren...@idtdna.com] Sent: quinta-feira, 5 de setembro de 2013 19:16 To: Rafael Thome Guimaraes; Log4NET User Subject: RE: Thread Safety in Log One of our developers (Eric Borman) researched this recently, so Ill quote him: The short answer is that log4net is thread safe, the appenders are not. log4net takes this into account and ensures proper serialization of logging events. So as long as you use the logging API and dont access the appender directly you are safe. http://stackoverflow.com/questions/1519211/multithread-safe-logging http://www.l4ndash.com/Log4NetMailArchive%2Ftabid%2F70%2Fforumid%2F1%2Fposti d%2F17279%2Fview%2Ftopic%2FDefault.aspx However, That does not make them process safe. So using a web garden will cause collisions. http://hectorcorrea.com/blog/log4net-thread-safe-but-not-process-safe Thanks, _________________________________ Bill Sorensen Patterns, Platforms and Practices Integrated DNA Technologies www.idtdna.com <http://www.idtdna.com> From: Rafael Thome Guimaraes [mailto:p-rguimar...@bvmf.com.br] Sent: Thursday, September 05, 2013 3:49 PM To: Log4NET User Subject: Thread Safety in Log Hi all! Anyone knows if Log4Net is Thread Safe or I need to put locks in the calls? Tks, Rafael Thomé Guimarães _____ Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não deverá utilizar, copiar, alterar, divulgar a informação nela contida ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor avise imediatamente o remetente, respondendo o e-mail e em seguida apague-o. Agradecemos sua cooperação. This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, change, take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation.
<<image001.gif>>
<<image002.gif>>