-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 
Author Message
 Post subject: Please don't use log4net 1.2.10.0
PostPosted: Mon Nov 13, 2006 12:11 pm 
Senior
Senior

Joined: Sat Mar 25, 2006 9:16 am
Posts: 150
I am very happy with the new Beta 2 release of nhibernate with one small exception.

The log4net build 1.2.10.0 is broken. The developers changed the public key and therefore bindingRedirects no longer work at all. I had to rebuild NH from source with the old log4net (1.2.9.0) so that I can continue to use it. I am linking to a variety of assemblies which reference various old versions of log4net and changing the public key is not acceptable.

According to the log4net developer, a "misadventure" caused the public key change, but he still has not fixed it.

Please see more information on this issue here : http://forum.springframework.net/showthread.php?t=470

If there is no compelling reason to use the new log4net, please do not use it until this issue has been fixed.

Thanks


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 13, 2006 4:11 pm 
Contributor
Contributor

Joined: Thu May 12, 2005 8:45 am
Posts: 226
What about the fact that it is an officially supported "final" release and 1.2.9 is a beta? If a person has an issue with 1.2.9, the log4net folks would have every right to say "please use 1.2.10, 1.2.9 is not supported".


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 13, 2006 4:20 pm 
Senior
Senior

Joined: Sat Mar 25, 2006 9:16 am
Posts: 150
They lost their own frickin' key pair. You trust them with your code?

The log4net project is already suffering, and this is a major setback which, to me, pushes them into obscurity. Please switch to something more robust i.e. Enterprise Library Logging.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 13, 2006 4:50 pm 
Senior
Senior

Joined: Sat Sep 10, 2005 3:46 pm
Posts: 178
One way that I have gotten around this problem for other projects is to install log4net version 1.2.9 into the GAC. Assemblies that reference 1.2.9 will use the GAC'ed version and assemblies that reference 1.2.10 will use the private asembly from the bin.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 13, 2006 5:03 pm 
Senior
Senior

Joined: Sat Mar 25, 2006 9:16 am
Posts: 150
Good advice, thanks I will try that


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 13, 2006 5:22 pm 
Contributor
Contributor

Joined: Thu May 12, 2005 8:45 am
Posts: 226
grennis wrote:
They lost their own frickin' key pair. You trust them with your code?

The log4net project is already suffering, and this is a major setback which, to me, pushes them into obscurity. Please switch to something more robust i.e. Enterprise Library Logging.


Well, I'm not giving them my code, but I do trust them for logging. Log4net (and log4j before that) has been around for a long time, is stable and very configurable. The key pair issue is a problem for many, but it is what it is. The point of using a "final" release is still a key point for many companies, and the key pair issue doesn't lower the quality of code in the 1.2.10 release.

NLog looks like a good alternative, but I haven't used it first-hand so I can't say for sure. Microsoft's "Enterprise" libraries are all fairly amateur code IMHO.

Rather than swap one logging implementation for another, I would prefer to see a logging abstraction put in place, similar to Apache's commons-logging; perhaps Castle's logging service. This way, people can choose what logging implementation they prefer and not have to deal with these hard dependency issues. Fans of Enterprise Library Logging could probably have that added to the abstraction as well. This way everyone's preferences are met and coupling is lowered.

Cheers,

Kevin


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 13, 2006 6:50 pm 
Senior
Senior

Joined: Sat Mar 25, 2006 9:16 am
Posts: 150
Now you're talking. Abstract that mofo!


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 13, 2006 7:55 pm 
Senior
Senior

Joined: Sat Sep 10, 2005 3:46 pm
Posts: 178
I found this abstraction layer mentioned over on the Spring.Net forum. I believe they are talking about using it to abstract the logging dependency from thier codebase.

http://www.gotdotnet.com/workspaces/wor ... b613cc4873


Quote:
Dotnet Commons Logging provides a unified Log interface that acts as a light-weight and independent abstraction of other logging frameworks.
Liken unto the Jakarta Commons Logging (http://jakarta.apache.org/commons/logging/),
Software developers may use the Logging API to remove compile-time and run-time dependencies on any particular logging package such as Log4net, and Microsoft Logging and Instrumentation Application Block (LIAB), and developers may write Log implementations for the library of their choice.

Current implementations included in the Dotnet Commons Logging are for:
1. log4net
2. a Simple text file Logger
3. System.Diagnostics.Trace
4. Microsoft Logging and Instrumentation Application Block (LIAB).


I dont know if its any good or not, but it might be worth a look.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 14, 2006 4:17 am 
Contributor
Contributor

Joined: Wed May 11, 2005 4:59 pm
Posts: 1766
Location: Prague, Czech Republic
I'm going to continue using log4net 1.2.10 in NHibernate 1.2 since 1.2.10 is considered stable, unlike 1.2.9. In my opinion, the right thing would be for everybody else to upgrade to the stable log4net, not for NHibernate to downgrade to a beta one.

I understand that the switch to 1.2.10 is going to cause a few problems, but so is the switch from 1.0 to 1.2.

Since 1.2 is now approaching release, I'm not going to change to a different logging framework in 1.2. As for later releases, everything is open to discussion, but I personally don't see much value in a framework abstracting from a logging framework which is itself an abstraction from various means of logging. Looks like too many levels of abstraction to me.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 14, 2006 10:51 am 
Contributor
Contributor

Joined: Thu May 12, 2005 8:45 am
Posts: 226
I respectfully disagree, Sergey. Clashes in versioning and such make logging a pain to deal with. Many projects have been waiting for dependent projects to update their log4net before they could update their log4net code. I feel this is too strong a dependency. I would love to see a config option like:

Code:
<add key="hibernate.loggingImpl" value="null"/>


or

Code:
<add key="hibernate.loggingImpl" value="nlog"/>


Complex abstractions can certainly make more trouble than they are worth, but logging is a very simple interface IMHO. Perhaps once 1.2 is out the door we can visit this topic again.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 14, 2006 10:53 am 
Contributor
Contributor

Joined: Thu May 12, 2005 8:45 am
Posts: 226
Edit Oops - double post! Sorry.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
cron
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.