View Javadoc
1   /*
2    * #%L
3    * Log.java - mongodb-async-driver - Allanbank Consulting, Inc.
4    * %%
5    * Copyright (C) 2011 - 2014 Allanbank Consulting, Inc.
6    * %%
7    * Licensed under the Apache License, Version 2.0 (the "License");
8    * you may not use this file except in compliance with the License.
9    * You may obtain a copy of the License at
10   * 
11   *      http://www.apache.org/licenses/LICENSE-2.0
12   * 
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   * #L%
19   */
20  package com.allanbank.mongodb.util.log;
21  
22  import java.util.logging.Level;
23  
24  /**
25   * Log is the simplified logging interface used by the driver. It will
26   * dynamically wrap either SLF4J (if available) or Java Util Logging (as a
27   * fall-back).
28   * 
29   * @api.no This class is <b>NOT</b> part of the drivers API. This class may be
30   *         mutated in incompatible ways between any two releases of the driver.
31   * @copyright 2014, Allanbank Consulting, Inc., All Rights Reserved
32   */
33  public interface Log {
34      /**
35       * The token to replace with the arguments to the log message. Unlike SLF4J
36       * we do support escaping of this token.
37       */
38      public static final String REPLACE_TOKEN = "{}";
39  
40      /**
41       * Logs a message at the {@link Level#FINE DEBUG} level.
42       * 
43       * @param message
44       *            The message to log.
45       */
46      public void debug(String message);
47  
48      /**
49       * Logs a message at the DEBUG level.
50       * 
51       * @param template
52       *            The message template to log.
53       * @param args
54       *            The arguments to replace the <code>{}</code> entries in the
55       *            template.
56       */
57      public void debug(String template, Object... args);
58  
59      /**
60       * Logs a message at the DEBUG level.
61       * 
62       * @param thrown
63       *            The exception associated with the log message.
64       * @param template
65       *            The message template to log.
66       * @param args
67       *            The arguments to replace the <code>{}</code> entries in the
68       *            template.
69       */
70      public void debug(Throwable thrown, String template, Object... args);
71  
72      /**
73       * Logs a message at the {@link Level#SEVERE ERROR} level.
74       * 
75       * @param message
76       *            The message to log.
77       */
78      public void error(String message);
79  
80      /**
81       * Logs a message at the ERROR level.
82       * 
83       * @param template
84       *            The message template to log.
85       * @param args
86       *            The arguments to replace the <code>{}</code> entries in the
87       *            template.
88       */
89      public void error(String template, Object... args);
90  
91      /**
92       * Logs a message at the ERROR level.
93       * 
94       * @param thrown
95       *            The exception associated with the log message.
96       * @param template
97       *            The message template to log.
98       * @param args
99       *            The arguments to replace the <code>{}</code> entries in the
100      *            template.
101      */
102     public void error(Throwable thrown, String template, Object... args);
103 
104     /**
105      * Logs a message at the {@link Level#INFO} level.
106      * 
107      * @param message
108      *            The message to log.
109      */
110     public void info(String message);
111 
112     /**
113      * Logs a message at the INFO level.
114      * 
115      * @param template
116      *            The message template to log.
117      * @param args
118      *            The arguments to replace the <code>{}</code> entries in the
119      *            template.
120      */
121     public void info(String template, Object... args);
122 
123     /**
124      * Logs a message at the INFO level.
125      * 
126      * @param thrown
127      *            The exception associated with the log message.
128      * @param template
129      *            The message template to log.
130      * @param args
131      *            The arguments to replace the <code>{}</code> entries in the
132      *            template.
133      */
134     public void info(Throwable thrown, String template, Object... args);
135 
136     /**
137      * Logs a message at the specified level.
138      * 
139      * @param level
140      *            The logging level for the message.
141      * @param message
142      *            The message to log.
143      */
144     public void log(Level level, String message);
145 
146     /**
147      * Logs a message at the specified level.
148      * 
149      * @param level
150      *            The logging level for the message.
151      * @param template
152      *            The message template to log.
153      * @param args
154      *            The arguments to replace the <code>{}</code> entries in the
155      *            template.
156      */
157     public void log(Level level, String template, Object... args);
158 
159     /**
160      * Logs a message at the specified level.
161      * 
162      * @param level
163      *            The logging level for the message.
164      * @param thrown
165      *            The exception associated with the log message.
166      * @param template
167      *            The message template to log.
168      * @param args
169      *            The arguments to replace the <code>{}</code> entries in the
170      *            template.
171      */
172     public void log(Level level, Throwable thrown, String template,
173             Object... args);
174 
175     /**
176      * Logs a message at the {@link Level#WARNING} level.
177      * 
178      * @param message
179      *            The message to log.
180      */
181     public void warn(String message);
182 
183     /**
184      * Logs a message at the WARNING level.
185      * 
186      * @param template
187      *            The message template to log.
188      * @param args
189      *            The arguments to replace the <code>{}</code> entries in the
190      *            template.
191      */
192     public void warn(String template, Object... args);
193 
194     /**
195      * Logs a message at the WARNING level.
196      * 
197      * @param thrown
198      *            The exception associated with the log message.
199      * @param template
200      *            The message template to log.
201      * @param args
202      *            The arguments to replace the <code>{}</code> entries in the
203      *            template.
204      */
205     public void warn(Throwable thrown, String template, Object... args);
206 
207 }