View Javadoc
1 /* ====================================================================
2 * License:
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. The end-user documentation included with the redistribution,
17 * if any, must include the following acknowledgment:
18 * "This product includes software developed by
19 * Robert Half International (http://www.rhi.com/)."
20 * Alternately, this acknowledgment may appear in the software itself,
21 * if and wherever such third-party acknowledgments normally appear.
22 *
23 * 4. The names "Parc", "RHI", and "Robert Half International" must
24 * not be used to endorse or promote products derived from this
25 * software without prior written permission. For written
26 * permission, please contact pete.mckinstry@rhi.com.
27 *
28 * 5. Products derived from this software may not be called "PARC",
29 * nor may "PARC" appear in their name, without prior written
30 * permission of Robert Half International.
31 *
32 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
33 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
34 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
36 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
37 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
39 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
40 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
41 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
42 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43 * SUCH DAMAGE.
44 * ====================================================================
45 *
46 */
47 package com.rhi.architecture.logging;
48
49 import com.rhi.architecture.config.ConfigurationException;
50 import com.rhi.architecture.resource.ResourceContext;
51
52 /***
53 * Helper method to creating Logger instance.
54 *
55 * @author Pete McKinstry
56 * @copyright 2002, Robert Half Int'l., Inc. All rights reserved.
57 *
58 * @since 1.0
59 */
60 public class LogUtil {
61
62 /***
63 * Get the appropriate Logger instance for this Interface
64 *
65 * @return DataSource
66 *
67 * @since 1.0
68 * @throws ConfigurationException
69 */
70 public static Logger getLogger() throws ConfigurationException {
71 Logger logger = null;
72
73 ResourceContext ctx = new ResourceContext();
74 // try the new Logging model.
75 LogFactory factory = (LogFactory) ctx.lookup(LogFactory.KEY);
76 if (factory == null) {
77 // no factory registered, fall back to the old model
78 logger = (Logger) ctx.lookup(Logger.KEY);
79 }
80 else {
81 logger = factory.getDefaultLogger();
82 }
83
84 if (logger == null) {
85 throw new ConfigurationException("unable to load logger. Resource not found");
86 }
87 return logger;
88 }
89
90 /***
91 * This helper method requires that the LogFactory is registered w/
92 * the ResourceContext. It follows the new Logging model.
93 *
94 * @param name - the name of the logger.
95 * @return Logger
96 * @throws ConfigurationException
97 */
98 public static Logger getLogger(String name)
99 throws ConfigurationException {
100 Logger logger = internalGetLogger(name);
101
102 if (logger == null) {
103 throw new ConfigurationException(
104 "unable to load logger. Resource not found");
105 }
106 return logger;
107 }
108
109 /***
110 * This helper method requires that the LogFactory is registered w/
111 * the ResourceContext. It follows the new Logging model.
112 *
113 * @param type - the name of the logger.
114 * @return Logger
115 * @throws ConfigurationException
116 */
117 public static Logger getLogger(Class type)
118 throws ConfigurationException {
119 Logger logger = internalGetLogger(type.getName());
120
121 if (logger == null) {
122 throw new ConfigurationException(
123 "unable to load logger. Resource not found");
124 }
125 return logger;
126 }
127
128 /***
129 * This method allows failures to be logged, even if the failure
130 * is in the logging package.
131 * @return Logger
132 */
133 public static Logger getDefaultLogger() {
134 return new DefaultLogger();
135 }
136
137 /***
138 * helper method
139 *
140 * @param name
141 * @return Logger
142 */
143 private static Logger internalGetLogger(String name) {
144 Logger logger = null;
145 LogFactory factory = getFactory();
146 if (factory != null) {
147 logger = factory.getLogger(name);
148 }
149 return logger;
150 }
151
152 /***
153 * helper method
154 *
155 * @return LogFactory
156 */
157 private static LogFactory getFactory() {
158 ResourceContext ctx = new ResourceContext();
159 return (LogFactory) ctx.lookup(LogFactory.KEY);
160 }
161
162 }
This page was automatically generated by Maven