MedRecLog4jFactory.java
01 package com.bea.medrec.utils;
02 
03 import java.text.SimpleDateFormat;
04 import java.util.Calendar;
05 import org.apache.log4j.Logger;
06 import weblogic.logging.LoggerNotAvailableException;
07 import weblogic.logging.log4j.Log4jLoggingHelper;
08 
09 /**
10  * Utility to obtain Log4j handles.
11  *
12  @author Copyright (c) 2006 by BEA Systems. All Rights Reserved.
13  */
14 public class MedRecLog4jFactory {
15 
16   /**
17    <p>Get logger.</p>
18    *
19    @param className  The HTTP request we are processing
20    @return Logger  Log4j logger.
21    */
22   public static Logger getLogger(String className) {
23     Logger tmpLogger = null;
24     try {
25       tmpLogger = Logger.getLogger(className);
26       if (tmpLogger == null) {
27         throw new Exception("Unable to obtain logger for class: "+className);
28       }
29     catch(Exception ex) {
30       SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a z");
31       String dateStr = format.format(Calendar.getInstance().getTime());
32       System.out.println("<"+dateStr+"> <Warning> <MedRec Logging>  "+
33          "Unable to get a reference to class name logger.  Will use "+
34          "server logger: "+ex.getMessage());
35       try {
36         tmpLogger = Log4jLoggingHelper.getLog4jServerLogger();
37         if (tmpLogger == null) {
38           dateStr = format.format(Calendar.getInstance().getTime());
39           System.out.println("<"+dateStr+"> <Notice> <MedRec Logging>  "+
40                "Unable to get a reference to the non-server logger");
41         }
42       catch (LoggerNotAvailableException e) {
43         e.printStackTrace();
44       }
45     }
46     return tmpLogger;
47   }
48 }