Mercurial Hosting > luan
comparison src/org/eclipse/jetty/util/log/JavaUtilLog.java @ 802:3428c60d7cfc
replace jetty jars with source
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 07 Sep 2016 21:15:48 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
801:6a21393191c1 | 802:3428c60d7cfc |
---|---|
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 | |
19 package org.eclipse.jetty.util.log; | |
20 | |
21 import java.util.logging.Level; | |
22 | |
23 /** | |
24 * <p> | |
25 * Implementation of Jetty {@link Logger} based on {@link java.util.logging.Logger}. | |
26 * </p> | |
27 * | |
28 * <p> | |
29 * You can also set the logger level using <a href="http://java.sun.com/j2se/1.5.0/docs/guide/logging/overview.html"> | |
30 * standard java.util.logging configuration</a>. | |
31 * </p> | |
32 */ | |
33 public class JavaUtilLog extends AbstractLogger | |
34 { | |
35 private Level configuredLevel; | |
36 private java.util.logging.Logger _logger; | |
37 | |
38 public JavaUtilLog() | |
39 { | |
40 this("org.eclipse.jetty.util.log"); | |
41 } | |
42 | |
43 public JavaUtilLog(String name) | |
44 { | |
45 _logger = java.util.logging.Logger.getLogger(name); | |
46 if (Boolean.parseBoolean(Log.__props.getProperty("org.eclipse.jetty.util.log.DEBUG", "false"))) | |
47 { | |
48 _logger.setLevel(Level.FINE); | |
49 } | |
50 configuredLevel = _logger.getLevel(); | |
51 } | |
52 | |
53 public String getName() | |
54 { | |
55 return _logger.getName(); | |
56 } | |
57 | |
58 public void warn(String msg, Object... args) | |
59 { | |
60 _logger.log(Level.WARNING, format(msg, args)); | |
61 } | |
62 | |
63 public void warn(Throwable thrown) | |
64 { | |
65 warn("", thrown); | |
66 } | |
67 | |
68 public void warn(String msg, Throwable thrown) | |
69 { | |
70 _logger.log(Level.WARNING, msg, thrown); | |
71 } | |
72 | |
73 public void info(String msg, Object... args) | |
74 { | |
75 _logger.log(Level.INFO, format(msg, args)); | |
76 } | |
77 | |
78 public void info(Throwable thrown) | |
79 { | |
80 info("", thrown); | |
81 } | |
82 | |
83 public void info(String msg, Throwable thrown) | |
84 { | |
85 _logger.log(Level.INFO, msg, thrown); | |
86 } | |
87 | |
88 public boolean isDebugEnabled() | |
89 { | |
90 return _logger.isLoggable(Level.FINE); | |
91 } | |
92 | |
93 public void setDebugEnabled(boolean enabled) | |
94 { | |
95 if (enabled) | |
96 { | |
97 configuredLevel = _logger.getLevel(); | |
98 _logger.setLevel(Level.FINE); | |
99 } | |
100 else | |
101 { | |
102 _logger.setLevel(configuredLevel); | |
103 } | |
104 } | |
105 | |
106 public void debug(String msg, Object... args) | |
107 { | |
108 _logger.log(Level.FINE, format(msg, args)); | |
109 } | |
110 | |
111 public void debug(Throwable thrown) | |
112 { | |
113 debug("", thrown); | |
114 } | |
115 | |
116 public void debug(String msg, Throwable thrown) | |
117 { | |
118 _logger.log(Level.FINE, msg, thrown); | |
119 } | |
120 | |
121 /** | |
122 * Create a Child Logger of this Logger. | |
123 */ | |
124 protected Logger newLogger(String fullname) | |
125 { | |
126 return new JavaUtilLog(fullname); | |
127 } | |
128 | |
129 public void ignore(Throwable ignored) | |
130 { | |
131 if (Log.isIgnored()) | |
132 { | |
133 warn(Log.IGNORED, ignored); | |
134 } | |
135 } | |
136 | |
137 private String format(String msg, Object... args) | |
138 { | |
139 msg = String.valueOf(msg); // Avoids NPE | |
140 String braces = "{}"; | |
141 StringBuilder builder = new StringBuilder(); | |
142 int start = 0; | |
143 for (Object arg : args) | |
144 { | |
145 int bracesIndex = msg.indexOf(braces, start); | |
146 if (bracesIndex < 0) | |
147 { | |
148 builder.append(msg.substring(start)); | |
149 builder.append(" "); | |
150 builder.append(arg); | |
151 start = msg.length(); | |
152 } | |
153 else | |
154 { | |
155 builder.append(msg.substring(start, bracesIndex)); | |
156 builder.append(String.valueOf(arg)); | |
157 start = bracesIndex + braces.length(); | |
158 } | |
159 } | |
160 builder.append(msg.substring(start)); | |
161 return builder.toString(); | |
162 } | |
163 } |