]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api/src/org/argeo/api/cms/CmsLog.java
Move Jetty factory to the servlet bundle
[lgpl/argeo-commons.git] / org.argeo.api / src / org / argeo / api / cms / CmsLog.java
1 package org.argeo.api.cms;
2
3 import java.lang.System.Logger;
4 import java.lang.System.Logger.Level;
5 import java.util.Objects;
6
7 /**
8 * A Commons Logging / SLF4J style logging utilities wrapping a standard Java
9 * platform {@link Logger}.
10 */
11 public interface CmsLog {
12 Logger getLogger();
13
14 default boolean isDebugEnabled() {
15 return getLogger().isLoggable(Level.DEBUG);
16 }
17
18 default boolean isErrorEnabled() {
19 return getLogger().isLoggable(Level.ERROR);
20 }
21
22 default boolean isInfoEnabled() {
23 return getLogger().isLoggable(Level.INFO);
24 }
25
26 default boolean isTraceEnabled() {
27 return getLogger().isLoggable(Level.TRACE);
28 }
29
30 default boolean isWarnEnabled() {
31 return getLogger().isLoggable(Level.WARNING);
32 }
33
34 /*
35 * TRACE
36 */
37
38 default void trace(String message) {
39 getLogger().log(Level.TRACE, message);
40 }
41
42 default void trace(Object message) {
43 getLogger().log(Level.TRACE, Objects.requireNonNull(message));
44 }
45
46 default void trace(String message, Throwable t) {
47 getLogger().log(Level.TRACE, message, t);
48 }
49
50 default void trace(Object message, Throwable t) {
51 trace(Objects.requireNonNull(message).toString(), t);
52 }
53
54 default void trace(String format, Object... arguments) {
55 getLogger().log(Level.TRACE, format, arguments);
56 }
57
58 /*
59 * DEBUG
60 */
61
62 default void debug(String message) {
63 getLogger().log(Level.DEBUG, message);
64 }
65
66 default void debug(Object message) {
67 getLogger().log(Level.DEBUG, message);
68 }
69
70 default void debug(String message, Throwable t) {
71 getLogger().log(Level.DEBUG, message, t);
72 }
73
74 default void debug(Object message, Throwable t) {
75 debug(Objects.requireNonNull(message).toString(), t);
76 }
77
78 default void debug(String format, Object... arguments) {
79 getLogger().log(Level.DEBUG, format, arguments);
80 }
81
82 /*
83 * INFO
84 */
85
86 default void info(String message) {
87 getLogger().log(Level.INFO, message);
88 }
89
90 default void info(Object message) {
91 getLogger().log(Level.INFO, message);
92 }
93
94 default void info(String message, Throwable t) {
95 getLogger().log(Level.INFO, message, t);
96 }
97
98 default void info(Object message, Throwable t) {
99 info(Objects.requireNonNull(message).toString(), t);
100 }
101
102 default void info(String format, Object... arguments) {
103 getLogger().log(Level.INFO, format, arguments);
104 }
105
106 /*
107 * WARN
108 */
109
110 default void warn(String message) {
111 getLogger().log(Level.WARNING, message);
112 }
113
114 default void warn(Object message) {
115 getLogger().log(Level.WARNING, message);
116 }
117
118 default void warn(String message, Throwable t) {
119 getLogger().log(Level.WARNING, message, t);
120 }
121
122 default void warn(Object message, Throwable t) {
123 warn(Objects.requireNonNull(message).toString(), t);
124 }
125
126 default void warn(String format, Object... arguments) {
127 getLogger().log(Level.WARNING, format, arguments);
128 }
129
130 /*
131 * ERROR
132 */
133
134 default void error(String message) {
135 getLogger().log(Level.ERROR, message);
136 }
137
138 default void error(Object message) {
139 getLogger().log(Level.ERROR, message);
140 }
141
142 default void error(String message, Throwable t) {
143 getLogger().log(Level.ERROR, message, t);
144 }
145
146 default void error(Object message, Throwable t) {
147 error(Objects.requireNonNull(message).toString(), t);
148 }
149
150 default void error(String format, Object... arguments) {
151 getLogger().log(Level.ERROR, format, arguments);
152 }
153
154 /*
155 * STATIC UTILITIES
156 */
157
158 static CmsLog getLog(Class<?> clss) {
159 return getLog(Objects.requireNonNull(clss).getName());
160 }
161
162 static CmsLog getLog(String name) {
163 Logger logger = System.getLogger(Objects.requireNonNull(name));
164 return new LoggerWrapper(logger);
165 }
166
167 /** A trivial implementation wrapping a platform logger. */
168 static class LoggerWrapper implements CmsLog {
169 private final Logger logger;
170
171 LoggerWrapper(Logger logger) {
172 this.logger = logger;
173 }
174
175 @Override
176 public Logger getLogger() {
177 return logger;
178 }
179
180 }
181
182 }