1//
2//  ========================================================================
3//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
4//  ------------------------------------------------------------------------
5//  All rights reserved. This program and the accompanying materials
6//  are made available under the terms of the Eclipse Public License v1.0
7//  and Apache License v2.0 which accompanies this distribution.
8//
9//      The Eclipse Public License is available at
10//      http://www.eclipse.org/legal/epl-v10.html
11//
12//      The Apache License v2.0 is available at
13//      http://www.opensource.org/licenses/apache2.0.php
14//
15//  You may elect to redistribute this code under either of these licenses.
16//  ========================================================================
17//
18
19package org.eclipse.jetty.util.log;
20
21/**
22 * A simple logging facade that is intended simply to capture the style of logging as used by Jetty.
23 */
24public interface Logger
25{
26    /**
27     * @return the name of this logger
28     */
29    public String getName();
30
31    /**
32     * Formats and logs at warn level.
33     * @param msg the formatting string
34     * @param args the optional arguments
35     */
36    public void warn(String msg, Object... args);
37
38    /**
39     * Logs the given Throwable information at warn level
40     * @param thrown the Throwable to log
41     */
42    public void warn(Throwable thrown);
43
44    /**
45     * Logs the given message at warn level, with Throwable information.
46     * @param msg the message to log
47     * @param thrown the Throwable to log
48     */
49    public void warn(String msg, Throwable thrown);
50
51    /**
52     * Formats and logs at info level.
53     * @param msg the formatting string
54     * @param args the optional arguments
55     */
56    public void info(String msg, Object... args);
57
58    /**
59     * Logs the given Throwable information at info level
60     * @param thrown the Throwable to log
61     */
62    public void info(Throwable thrown);
63
64    /**
65     * Logs the given message at info level, with Throwable information.
66     * @param msg the message to log
67     * @param thrown the Throwable to log
68     */
69    public void info(String msg, Throwable thrown);
70
71    /**
72     * @return whether the debug level is enabled
73     */
74    public boolean isDebugEnabled();
75
76    /**
77     * Mutator used to turn debug on programmatically.
78     * @param enabled whether to enable the debug level
79     */
80    public void setDebugEnabled(boolean enabled);
81
82    /**
83     * Formats and logs at debug level.
84     * @param msg the formatting string
85     * @param args the optional arguments
86     */
87    public void debug(String msg, Object... args);
88
89    /**
90     * Logs the given Throwable information at debug level
91     * @param thrown the Throwable to log
92     */
93    public void debug(Throwable thrown);
94
95    /**
96     * Logs the given message at debug level, with Throwable information.
97     * @param msg the message to log
98     * @param thrown the Throwable to log
99     */
100    public void debug(String msg, Throwable thrown);
101
102    /**
103     * @param name the name of the logger
104     * @return a logger with the given name
105     */
106    public Logger getLogger(String name);
107
108    /**
109     * Ignore an exception.
110     * <p>This should be used rather than an empty catch block.
111     */
112    public void ignore(Throwable ignored);
113}
114