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 }
|