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

Side by Side Diff: utils/pub/log.dart

Issue 13095015: Use backtracking when solving dependency constraints. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Track amount of backtracking used in solver tests. Created 7 years, 8 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
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 /// Message logging. 5 /// Message logging.
6 library log; 6 library log;
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 9
10 import 'io.dart'; 10 import 'io.dart';
(...skipping 18 matching lines...) Expand all
29 /// though possibly in a degraded fashion. 29 /// though possibly in a degraded fashion.
30 static const WARNING = const Level._("WARN"); 30 static const WARNING = const Level._("WARN");
31 31
32 /// A message intended specifically to be shown to the user. 32 /// A message intended specifically to be shown to the user.
33 static const MESSAGE = const Level._("MSG "); 33 static const MESSAGE = const Level._("MSG ");
34 34
35 /// Some interaction with the external world occurred, such as a network 35 /// Some interaction with the external world occurred, such as a network
36 /// operation, process spawning, or file IO. 36 /// operation, process spawning, or file IO.
37 static const IO = const Level._("IO "); 37 static const IO = const Level._("IO ");
38 38
39 /// Incremental output during pub's version constraint solver.
40 static const SOLVER = const Level._("SLVR");
41
39 /// Fine-grained and verbose additional information. Can be used to provide 42 /// Fine-grained and verbose additional information. Can be used to provide
40 /// program state context for other logs (such as what pub was doing when an 43 /// program state context for other logs (such as what pub was doing when an
41 /// IO operation occurred) or just more detail for an operation. 44 /// IO operation occurred) or just more detail for an operation.
42 static const FINE = const Level._("FINE"); 45 static const FINE = const Level._("FINE");
43 46
44 const Level._(this.name); 47 const Level._(this.name);
45 final String name; 48 final String name;
46 49
47 String toString() => name; 50 String toString() => name;
48 int get hashCode => name.hashCode; 51 int get hashCode => name.hashCode;
(...skipping 12 matching lines...) Expand all
61 64
62 /// Logs [message] at [Level.WARNING]. 65 /// Logs [message] at [Level.WARNING].
63 void warning(message) => write(Level.WARNING, message); 66 void warning(message) => write(Level.WARNING, message);
64 67
65 /// Logs [message] at [Level.MESSAGE]. 68 /// Logs [message] at [Level.MESSAGE].
66 void message(message) => write(Level.MESSAGE, message); 69 void message(message) => write(Level.MESSAGE, message);
67 70
68 /// Logs [message] at [Level.IO]. 71 /// Logs [message] at [Level.IO].
69 void io(message) => write(Level.IO, message); 72 void io(message) => write(Level.IO, message);
70 73
74 /// Logs [message] at [Level.SOLVER].
75 void solver(message) => write(Level.SOLVER, message);
76
71 /// Logs [message] at [Level.FINE]. 77 /// Logs [message] at [Level.FINE].
72 void fine(message) => write(Level.FINE, message); 78 void fine(message) => write(Level.FINE, message);
73 79
74 /// Logs [message] at [level]. 80 /// Logs [message] at [level].
75 void write(Level level, message) { 81 void write(Level level, message) {
76 if (_loggers.isEmpty) showNormal(); 82 if (_loggers.isEmpty) showNormal();
77 83
78 var lines = splitLines(message.toString()); 84 var lines = splitLines(message.toString());
79 var entry = new Entry(level, lines); 85 var entry = new Entry(level, lines);
80 86
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 } 167 }
162 stderrSink.add('---- End log transcript ----\n'.codeUnits); 168 stderrSink.add('---- End log transcript ----\n'.codeUnits);
163 } 169 }
164 170
165 /// Sets the verbosity to "normal", which shows errors, warnings, and messages. 171 /// Sets the verbosity to "normal", which shows errors, warnings, and messages.
166 void showNormal() { 172 void showNormal() {
167 _loggers[Level.ERROR] = _logToStderr; 173 _loggers[Level.ERROR] = _logToStderr;
168 _loggers[Level.WARNING] = _logToStderr; 174 _loggers[Level.WARNING] = _logToStderr;
169 _loggers[Level.MESSAGE] = _logToStdout; 175 _loggers[Level.MESSAGE] = _logToStdout;
170 _loggers[Level.IO] = null; 176 _loggers[Level.IO] = null;
177 _loggers[Level.SOLVER] = null;
171 _loggers[Level.FINE] = null; 178 _loggers[Level.FINE] = null;
172 } 179 }
173 180
174 /// Sets the verbosity to "io", which shows errors, warnings, messages, and IO 181 /// Sets the verbosity to "io", which shows errors, warnings, messages, and IO
175 /// event logs. 182 /// event logs.
176 void showIO() { 183 void showIO() {
177 _loggers[Level.ERROR] = _logToStderrWithLabel; 184 _loggers[Level.ERROR] = _logToStderrWithLabel;
178 _loggers[Level.WARNING] = _logToStderrWithLabel; 185 _loggers[Level.WARNING] = _logToStderrWithLabel;
179 _loggers[Level.MESSAGE] = _logToStdoutWithLabel; 186 _loggers[Level.MESSAGE] = _logToStdoutWithLabel;
180 _loggers[Level.IO] = _logToStderrWithLabel; 187 _loggers[Level.IO] = _logToStderrWithLabel;
188 _loggers[Level.SOLVER] = null;
181 _loggers[Level.FINE] = null; 189 _loggers[Level.FINE] = null;
182 } 190 }
183 191
192 /// Sets the verbosity to "solver", which shows errors, warnings, messages, and
193 /// solver logs.
194 void showSolver() {
195 _loggers[Level.ERROR] = _logToStderr;
196 _loggers[Level.WARNING] = _logToStderr;
197 _loggers[Level.MESSAGE] = _logToStdout;
198 _loggers[Level.IO] = null;
199 _loggers[Level.SOLVER] = _logToStdout;
200 _loggers[Level.FINE] = null;
201 }
202
184 /// Sets the verbosity to "all", which logs ALL the things. 203 /// Sets the verbosity to "all", which logs ALL the things.
185 void showAll() { 204 void showAll() {
186 _loggers[Level.ERROR] = _logToStderrWithLabel; 205 _loggers[Level.ERROR] = _logToStderrWithLabel;
187 _loggers[Level.WARNING] = _logToStderrWithLabel; 206 _loggers[Level.WARNING] = _logToStderrWithLabel;
188 _loggers[Level.MESSAGE] = _logToStdoutWithLabel; 207 _loggers[Level.MESSAGE] = _logToStdoutWithLabel;
189 _loggers[Level.IO] = _logToStderrWithLabel; 208 _loggers[Level.IO] = _logToStderrWithLabel;
209 _loggers[Level.SOLVER] = _logToStderrWithLabel;
190 _loggers[Level.FINE] = _logToStderrWithLabel; 210 _loggers[Level.FINE] = _logToStderrWithLabel;
191 } 211 }
192 212
193 /// Log function that prints the message to stdout. 213 /// Log function that prints the message to stdout.
194 void _logToStdout(Entry entry) { 214 void _logToStdout(Entry entry) {
195 _logToStream(stdoutSink, entry, showLabel: false); 215 _logToStream(stdoutSink, entry, showLabel: false);
196 } 216 }
197 217
198 /// Log function that prints the message to stdout with the level name. 218 /// Log function that prints the message to stdout with the level name.
199 void _logToStdoutWithLabel(Entry entry) { 219 void _logToStdoutWithLabel(Entry entry) {
(...skipping 21 matching lines...) Expand all
221 sink.add(' | '.codeUnits); 241 sink.add(' | '.codeUnits);
222 } 242 }
223 } 243 }
224 244
225 sink.add(line.codeUnits); 245 sink.add(line.codeUnits);
226 sink.add('\n'.codeUnits); 246 sink.add('\n'.codeUnits);
227 247
228 firstLine = false; 248 firstLine = false;
229 } 249 }
230 } 250 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698