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.