1 /**************************************************************************
2 *
3 * Copyright (c) 2015-2020 Yawg project contributors.
4 *
5 **************************************************************************/
6
7 package com.varmateo.yawg.logging;
8
9 import java.util.logging.Level;
10 import java.util.logging.LogRecord;
11 import java.util.logging.Logger;
12
13
14 /**
15 * A <code>Log</code> implementation using Java <code>Logger</code>
16 * instances. Intended for private use of package
17 * com.varmateo.yawg.logging.
18 */
19 /* default */ final class LoggerLog
20 implements Log {
21
22
23 private final Logger _logger;
24
25
26 /**
27 *
28 */
29 /* default */ LoggerLog(final Logger logger) {
30
31 _logger = logger;
32 }
33
34
35 /**
36 * Retrieves the underlying Java <code>Logger</code> that is being
37 * used as output.
38 *
39 * @return The Java <code>Logger</code> underlying this
40 * <code>LoggerLog</code>.
41 */
42 public Logger getLogger() {
43
44 return _logger;
45 }
46
47
48 /**
49 * @return The current log level.
50 */
51 public Level getLevel() {
52
53 return (_logger == null) ? Level.OFF : _logger.getLevel();
54 }
55
56
57 /**
58 * Log a WARNING message.
59 *
60 * @param msg The message to be logged.
61 */
62 @Override
63 public void warning(final String msg) {
64
65 log(Level.WARNING, msg, null);
66 }
67
68
69 /**
70 * Log a WARNING message.
71 *
72 * @param msg The log message format.
73 *
74 * @param fmtArgs Formating arguments used when generating the
75 * actual message that is logged.
76 */
77 @Override
78 public void warning(
79 final String msg,
80 final Object... fmtArgs) {
81
82 log(Level.WARNING, msg, fmtArgs);
83 }
84
85
86 /**
87 * Log a WARNING message.
88 *
89 * @param error The exception associated with the log message.
90 *
91 * @param msg The log message format.
92 *
93 * @param fmtArgs Formating arguments used when generating the actual
94 * message that is logged.
95 */
96 @Override
97 public void warning(
98 final Throwable error,
99 final String msg,
100 final Object... fmtArgs) {
101
102 log(Level.WARNING, error, msg, fmtArgs);
103 }
104
105
106 /**
107 * Log a INFO message.
108 *
109 * @param msg The message to be logged.
110 */
111 @Override
112 public void info(final String msg) {
113
114 log(Level.INFO, msg, null);
115 }
116
117
118 /**
119 * Log a INFO message.
120 *
121 * @param msg The log message format.
122 *
123 * @param fmtArgs Formating arguments used when generating the
124 * actual message that is logged.
125 */
126 @Override
127 public void info(
128 final String msg,
129 final Object... fmtArgs) {
130
131 log(Level.INFO, msg, fmtArgs);
132 }
133
134
135 /**
136 * Log a DEBUG message.
137 *
138 * @param msg The message to be logged.
139 */
140 @Override
141 public void debug(final String msg) {
142
143 log(Level.FINE, msg, null);
144 }
145
146
147 /**
148 * Log a DEBUG message.
149 *
150 * @param msg The log message format.
151 *
152 * @param fmtArgs Formating arguments used when generating the
153 * actual message that is logged.
154 */
155 @Override
156 public void debug(
157 final String msg,
158 final Object... fmtArgs) {
159
160 log(Level.FINE, msg, fmtArgs);
161 }
162
163
164 /**
165 *
166 */
167 private void log(
168 final Level level,
169 final String msg,
170 final Object[] fmtArgs) {
171
172 if ( _logger != null ) {
173 _logger.log(level, msg, fmtArgs);
174 }
175 }
176
177
178 /**
179 *
180 */
181 private void log(
182 final Level level,
183 final Throwable error,
184 final String msg,
185 final Object[] fmtArgs) {
186
187 if ( _logger != null ) {
188 final LogRecord logRecord = new LogRecord(level, msg);
189
190 logRecord.setThrown(error);
191 logRecord.setParameters(fmtArgs);
192 _logger.log(logRecord);
193 }
194 }
195
196
197 }