Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: pkg/logging/logging.dart

Issue 10919146: Get rid of a lot of () for getters. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/fixnum/int64.dart ('k') | pkg/unittest/html_enhanced_config.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * Provides APIs for debugging and error logging. This library introduces 6 * Provides APIs for debugging and error logging. This library introduces
7 * abstractions similar to those used in other languages, such as the Closure JS 7 * abstractions similar to those used in other languages, such as the Closure JS
8 * Logger and java.util.logging.Logger. 8 * Logger and java.util.logging.Logger.
9 */ 9 */
10 #library('logging'); 10 #library('logging');
(...skipping 13 matching lines...) Expand all
24 24
25 /** 25 /**
26 * Use a [Logger] to log debug messages. [Logger]s are named using a 26 * Use a [Logger] to log debug messages. [Logger]s are named using a
27 * hierarchical dot-separated name convention. 27 * hierarchical dot-separated name convention.
28 */ 28 */
29 class Logger { 29 class Logger {
30 /** Simple name of this logger. */ 30 /** Simple name of this logger. */
31 final String name; 31 final String name;
32 32
33 /** The full name of this logger, which includes the parent's full name. */ 33 /** The full name of this logger, which includes the parent's full name. */
34 String get fullName() => 34 String get fullName =>
35 (parent == null || parent.name == '') ? name : '${parent.fullName}.$name'; 35 (parent == null || parent.name == '') ? name : '${parent.fullName}.$name';
36 36
37 /** Parent of this logger in the hierarchy of loggers. */ 37 /** Parent of this logger in the hierarchy of loggers. */
38 final Logger parent; 38 final Logger parent;
39 39
40 /** Logging [Level] used for entries generated on this logger. */ 40 /** Logging [Level] used for entries generated on this logger. */
41 Level _level; 41 Level _level;
42 42
43 /** Children in the hierarchy of loggers, indexed by their simple names. */ 43 /** Children in the hierarchy of loggers, indexed by their simple names. */
44 Map<String, Logger> children; 44 Map<String, Logger> children;
(...skipping 30 matching lines...) Expand all
75 75
76 Logger._internal(this.name, this.parent) 76 Logger._internal(this.name, this.parent)
77 : children = new Map<String, Logger>() { 77 : children = new Map<String, Logger>() {
78 if (parent != null) parent.children[name] = this; 78 if (parent != null) parent.children[name] = this;
79 } 79 }
80 80
81 /** 81 /**
82 * Effective level considering the levels established in this logger's parents 82 * Effective level considering the levels established in this logger's parents
83 * (when [hierarchicalLoggingEnabled] is true). 83 * (when [hierarchicalLoggingEnabled] is true).
84 */ 84 */
85 Level get level() { 85 Level get level {
86 if (hierarchicalLoggingEnabled) { 86 if (hierarchicalLoggingEnabled) {
87 if (_level != null) return _level; 87 if (_level != null) return _level;
88 if (parent != null) return parent.level; 88 if (parent != null) return parent.level;
89 } 89 }
90 return _rootLevel; 90 return _rootLevel;
91 } 91 }
92 92
93 /** Override the level for this particular [Logger] and its children. */ 93 /** Override the level for this particular [Logger] and its children. */
94 Level set level(value) { 94 Level set level(value) {
95 if (hierarchicalLoggingEnabled && parent != null) { 95 if (hierarchicalLoggingEnabled && parent != null) {
96 _level = value; 96 _level = value;
97 } else { 97 } else {
98 if (parent != null) { 98 if (parent != null) {
99 throw new UnsupportedOperationException( 99 throw new UnsupportedOperationException(
100 'Please set "hierarchicalLoggingEnabled" to true if you want to ' 100 'Please set "hierarchicalLoggingEnabled" to true if you want to '
101 'change the level on a non-root logger.'); 101 'change the level on a non-root logger.');
102 } 102 }
103 _rootLevel = value; 103 _rootLevel = value;
104 } 104 }
105 } 105 }
106 106
107 /** 107 /**
108 * Returns an event manager for this [Logger]. You can listen for log messages 108 * Returns an event manager for this [Logger]. You can listen for log messages
109 * by adding a [LoggerHandler] to an event from the event manager, for 109 * by adding a [LoggerHandler] to an event from the event manager, for
110 * instance: 110 * instance:
111 * logger.on.record.add((record) { ... }); 111 * logger.on.record.add((record) { ... });
112 */ 112 */
113 LoggerEvents get on() => new LoggerEvents(this); 113 LoggerEvents get on => new LoggerEvents(this);
114 114
115 /** Adds a handler to listen whenever a log record is added to this logger. */ 115 /** Adds a handler to listen whenever a log record is added to this logger. */
116 void _addHandler(LoggerHandler handler) { 116 void _addHandler(LoggerHandler handler) {
117 if (hierarchicalLoggingEnabled || parent == null) { 117 if (hierarchicalLoggingEnabled || parent == null) {
118 if (_handlers == null) { 118 if (_handlers == null) {
119 _handlers = new List<LoggerHandler>(); 119 _handlers = new List<LoggerHandler>();
120 } 120 }
121 _handlers.add(handler); 121 _handlers.add(handler);
122 } else { 122 } else {
123 root._addHandler(handler); 123 root._addHandler(handler);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 /** Log message at level [Level.SHOUT]. */ 194 /** Log message at level [Level.SHOUT]. */
195 void shout(String message) => log(Level.SHOUT, message); 195 void shout(String message) => log(Level.SHOUT, message);
196 196
197 void _publish(LogRecord record) { 197 void _publish(LogRecord record) {
198 if (_handlers != null) { 198 if (_handlers != null) {
199 _handlers.forEach((h) => h(record)); 199 _handlers.forEach((h) => h(record));
200 } 200 }
201 } 201 }
202 202
203 /** Top-level root [Logger]. */ 203 /** Top-level root [Logger]. */
204 static get root() => new Logger(''); 204 static get root => new Logger('');
205 205
206 /** All [Logger]s in the system. */ 206 /** All [Logger]s in the system. */
207 static Map<String, Logger> _loggers; 207 static Map<String, Logger> _loggers;
208 } 208 }
209 209
210 210
211 /** Handler callback to process log entries as they are added to a [Logger]. */ 211 /** Handler callback to process log entries as they are added to a [Logger]. */
212 typedef void LoggerHandler(LogRecord); 212 typedef void LoggerHandler(LogRecord);
213 213
214 214
215 /** Event manager for a [Logger] (holds events that a [Logger] can fire). */ 215 /** Event manager for a [Logger] (holds events that a [Logger] can fire). */
216 class LoggerEvents { 216 class LoggerEvents {
217 final Logger _logger; 217 final Logger _logger;
218 218
219 LoggerEvents(this._logger); 219 LoggerEvents(this._logger);
220 220
221 /** Event fired when a log record is added to a [Logger]. */ 221 /** Event fired when a log record is added to a [Logger]. */
222 LoggerHandlerList get record() => new LoggerHandlerList(_logger); 222 LoggerHandlerList get record => new LoggerHandlerList(_logger);
223 } 223 }
224 224
225 225
226 /** List of handlers that will be called on a logger event. */ 226 /** List of handlers that will be called on a logger event. */
227 class LoggerHandlerList { 227 class LoggerHandlerList {
228 Logger _logger; 228 Logger _logger;
229 229
230 LoggerHandlerList(this._logger); 230 LoggerHandlerList(this._logger);
231 231
232 void add(LoggerHandler handler) => _logger._addHandler(handler); 232 void add(LoggerHandler handler) => _logger._addHandler(handler);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 325
326 /** Associated exception message (if any) when recording errors messages. */ 326 /** Associated exception message (if any) when recording errors messages. */
327 String exceptionText; 327 String exceptionText;
328 328
329 LogRecord( 329 LogRecord(
330 this.level, this.message, this.loggerName, 330 this.level, this.message, this.loggerName,
331 [time, this.exception, this.exceptionText]) : 331 [time, this.exception, this.exceptionText]) :
332 this.time = (time == null) ? new Date.now() : time, 332 this.time = (time == null) ? new Date.now() : time,
333 this.sequenceNumber = LogRecord._nextNumber++; 333 this.sequenceNumber = LogRecord._nextNumber++;
334 } 334 }
OLDNEW
« no previous file with comments | « pkg/fixnum/int64.dart ('k') | pkg/unittest/html_enhanced_config.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698