1 package org.molwind.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 import java.util.logging.Level;
21 import java.util.logging.Logger;
22
23 import javax.servlet.ServletContext;
24
25
26
27
28
29
30
31 public final class MolwindLogger {
32
33 private Logger logger;
34 private ServletContext servletContext;
35
36 private static MolwindLogger molwindLogger;
37
38 private MolwindLogger(final ServletContext context) {
39 logger = Logger.getLogger("org.molwind");
40 servletContext = context;
41 }
42
43 private MolwindLogger() {
44 this(null);
45 }
46
47
48
49
50
51
52
53
54
55
56
57 public static MolwindLogger getInstance(final ServletContext context) {
58 if (molwindLogger == null) {
59 molwindLogger = new MolwindLogger(context);
60 }
61 return molwindLogger;
62 }
63
64
65
66
67
68
69
70 public static MolwindLogger getInstance() {
71 return getInstance(null);
72 }
73
74
75 private void setWarning(final String message, final Throwable cause) {
76 String fullMessage = "WARN " + message;
77
78 if (cause != null) {
79 logger.log(Level.WARNING, fullMessage, cause);
80 } else {
81 logger.log(Level.WARNING, fullMessage);
82 }
83
84 if (servletContext != null) {
85 servletContext.log(fullMessage, cause);
86 }
87 }
88
89 private void setError(final String message, final Throwable cause) {
90 String fullMessage = "ERROR " + message;
91
92 if (cause != null) {
93 logger.log(Level.WARNING, fullMessage, cause);
94 } else {
95 logger.log(Level.WARNING, fullMessage);
96 }
97
98 if (servletContext != null) {
99 servletContext.log(fullMessage, cause);
100 }
101 }
102
103 private void setDebugMessage(final String message, final Throwable cause) {
104 String fullMessage = "DEBUG " + message;
105
106 if (cause != null) {
107 logger.log(Level.INFO, fullMessage, cause);
108 } else {
109 logger.log(Level.INFO, fullMessage);
110 }
111
112 if (servletContext != null) {
113 servletContext.log(fullMessage, cause);
114 }
115 }
116
117 private void setInfo(final String message, final Throwable cause) {
118 String fullMessage = "INFO " + message;
119
120 if (cause != null) {
121 logger.log(Level.INFO, fullMessage, cause);
122 } else {
123 logger.log(Level.INFO, fullMessage);
124 }
125
126 if (servletContext != null) {
127 servletContext.log(fullMessage, cause);
128 }
129 }
130
131 private void setFatalError(final String message, final Throwable cause) {
132 String fullMessage = "FATAL " + message;
133
134 if (cause != null) {
135 logger.log(Level.SEVERE, fullMessage, cause);
136 } else {
137 logger.log(Level.SEVERE, fullMessage);
138 }
139
140 if (servletContext != null) {
141 servletContext.log(fullMessage, cause);
142 }
143 }
144
145
146 public static void warn(final String message, final Throwable cause) {
147 MolwindLogger logger = getInstance();
148 logger.setWarning(message, cause);
149 }
150 public static void error(final String message, final Throwable cause) {
151 MolwindLogger logger = getInstance();
152 logger.setError(message, cause);
153 }
154 public static void fatal(final String message, final Throwable cause) {
155 MolwindLogger logger = getInstance();
156 logger.setFatalError(message, cause);
157 }
158 public static void info(final String message, final Throwable cause) {
159 MolwindLogger logger = getInstance();
160 logger.setInfo(message, cause);
161 }
162 public static void debug(final String message, final Throwable cause) {
163 MolwindLogger logger = getInstance();
164 logger.setDebugMessage(message, cause);
165 }
166
167
168 public static void warn(final String message) {
169 MolwindLogger logger = getInstance();
170 logger.setWarning(message, null);
171 }
172 public static void error(final String message) {
173 MolwindLogger logger = getInstance();
174 logger.setError(message, null);
175 }
176 public static void fatal(final String message) {
177 MolwindLogger logger = getInstance();
178 logger.setFatalError(message, null);
179 }
180 public static void info(final String message) {
181 MolwindLogger logger = getInstance();
182 logger.setInfo(message, null);
183 }
184 public static void debug(final String message) {
185 MolwindLogger logger = getInstance();
186 logger.setDebugMessage(message, null);
187 }
188
189
190 public static void warn(final Throwable cause) {
191 MolwindLogger logger = getInstance();
192 logger.setWarning("", cause);
193 }
194 public static void error(final Throwable cause) {
195 MolwindLogger logger = getInstance();
196 logger.setError("", cause);
197 }
198 public static void fatal(final Throwable cause) {
199 MolwindLogger logger = getInstance();
200 logger.setFatalError("", cause);
201 }
202 public static void info(final Throwable cause) {
203 MolwindLogger logger = getInstance();
204 logger.setInfo("", cause);
205 }
206 public static void debug(final Throwable cause) {
207 MolwindLogger logger = getInstance();
208 logger.setDebugMessage("", cause);
209 }
210
211 }