You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "David Blevins (JIRA)" <ji...@apache.org> on 2007/08/09 07:27:43 UTC
[jira] Closed: (OPENEJB-627) Refactor Logging API to tighten Logger
creation
[ https://issues.apache.org/jira/browse/OPENEJB-627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Blevins closed OPENEJB-627.
---------------------------------
Resolution: Fixed
Fix Version/s: 3.0
Assignee: karan singh malhi
All committed!
$ svn ci
Sending container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
Sending container/openejb-core/src/main/java/org/apache/openejb/util/LogCategory.java
Sending container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/AuthRequestHandler.java
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ServerSideResolver.java
Sending server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpServer.java
Sending server/openejb-server/src/main/java/org/apache/openejb/server/ServiceLogger.java
Sending server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
Sending server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java
Sending server/openejb-telnet/src/main/java/org/apache/openejb/server/telnet/TextConsole.java
Sending server/openejb-webadmin/src/main/java/org/apache/openejb/webadmin/httpd/HttpServer.java
Transmitting file data ............
Committed revision 564085.
> Refactor Logging API to tighten Logger creation
> -----------------------------------------------
>
> Key: OPENEJB-627
> URL: https://issues.apache.org/jira/browse/OPENEJB-627
> Project: OpenEJB
> Issue Type: Improvement
> Reporter: karan singh malhi
> Assignee: karan singh malhi
> Fix For: 3.0
>
> Attachments: openejb-627.patch
>
>
> Below is a proposal from Karan Singh:
> -----------------------------------------------------
> The current getInstance method of Logger has the following signature:
> Logger getInstance(String name, String baseName)
> Logger getInstance(String name, Class clazz)
> If one had to obtain a Logger, it is still to easy to do something like
> Logger logger = Logger.getInstance("abc","org.apache.openejb");
> i.e. it is still easy to bypass the LogCategory totally. Over time,
> this might lead to a problem in that we might again end up in a
> situation where we have loggers which are lost in code and are not
> defined in log4j.configuration because nobody knows about their
> existence. I mean, you can still go and add a Category to LogCategory
> and not update log4j configuration, but this way atleast we have
> tighter control over where to look for all Categories and then update
> log4j if required.
> I am thinking to refactor the Logger and LogCategory as below:
> Logger getInstance(LogCategory category, String baseName)
> Logger getInstance(LogCategory category, Class clazz)
> public final class LogCategory {
> private String name;
> public static final LogCategory OPENEJB = new LogCategory("OpenEJB");
> public static final LogCategory OPENEJB_STARTUP =
> new LogCategory (OPENEJB.name + ".startup");
> ...
> ...
> private LogCategory(String name){ this.name = name;}
> public String getName(){return this.name;}
> }
> What this also gives us is an ability to add methods, for lets say,
> generating LogCategories, given a deploymentId (David blevins idea
> about loggers with deploymentId as a suffix)
> ==============================================================================
> David Blevins enhanced the proposal with a great idea (see below) -- This will be very helpful in creating Loggers with specific moduleId's
> --------------------------------------------------------------------------------------------------
> So I can see some appeal to the idea. I guess if we used old school
> enums as you propose we could make it work. We just need some nice
> way to create the "sub categories". Maybe we could tuck the creation
> of the non static final (the dynamically created) LogCategories away
> as in..
> // Standard setup part
> private static final Logger log = Logger.getInstance
> (LogCategory.OPENEJB_DEPLOY, Foo.class);
> // Now later i need to do something app specific
> Logger appLog = log.getLogger("mySuperApp");
> -- - - -- - - - - - -
> Under the covers it might just be something like:
> return Logger.getInstance(this.logCategory.createChild
> ("mySuperApp", this.packageName);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.