Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 880280a

Browse files
authored
Move setting the logging level into the Logger constructor, refactor. (#52624)
Based on @zanderso's feedback here: #52619 (comment). I think this is the most succinct way to setup logging, it also doesn't seem to make sense to allow the level to be configured at runtime, so boom.
1 parent 1fe835b commit 880280a

File tree

4 files changed

+19
-22
lines changed

4 files changed

+19
-22
lines changed

tools/engine_tool/lib/main.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,18 @@ void main(List<String> args) async {
6060
io.exitCode = 1;
6161
}
6262

63+
final Logger logger;
64+
if (verbose) {
65+
logger = Logger(level: Logger.infoLevel);
66+
} else {
67+
logger = Logger();
68+
}
6369
final Environment environment = Environment(
6470
abi: ffi.Abi.current(),
6571
engine: engine,
6672
platform: const LocalPlatform(),
6773
processRunner: ProcessRunner(),
68-
logger: Logger(),
74+
logger: logger,
6975
verbose: verbose,
7076
);
7177

tools/engine_tool/lib/src/commands/command_runner.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:args/command_runner.dart';
66
import 'package:engine_build_configs/engine_build_configs.dart';
77

88
import '../environment.dart';
9-
import '../logger.dart';
109
import 'build_command.dart';
1110
import 'fetch_command.dart';
1211
import 'flags.dart';
@@ -94,9 +93,6 @@ final class ToolCommandRunner extends CommandRunner<int> {
9493

9594
@override
9695
Future<int> run(Iterable<String> args) async {
97-
if (environment.verbose) {
98-
environment.logger.level = Logger.infoLevel;
99-
}
10096
try {
10197
return await runCommand(parse(args)) ?? 0;
10298
} on FormatException catch (e) {

tools/engine_tool/lib/src/logger.dart

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,25 @@ import 'package:meta/meta.dart';
2626
/// which can be inspected by unit tetss.
2727
class Logger {
2828
/// Constructs a logger for use in the tool.
29-
Logger()
29+
Logger({
30+
log.Level level = statusLevel,
31+
})
3032
: _logger = log.Logger.detached('et'),
3133
_test = false {
32-
_logger.level = statusLevel;
34+
_logger.level = level;
3335
_logger.onRecord.listen(_handler);
3436
_setupIoSink(io.stderr);
3537
_setupIoSink(io.stdout);
3638
}
3739

3840
/// A logger for tests.
3941
@visibleForTesting
40-
Logger.test()
42+
Logger.test({
43+
log.Level level = statusLevel,
44+
})
4145
: _logger = log.Logger.detached('et'),
4246
_test = true {
43-
_logger.level = statusLevel;
47+
_logger.level = level;
4448
_logger.onRecord.listen((log.LogRecord r) => _testLogs.add(r));
4549
}
4650

@@ -105,11 +109,6 @@ class Logger {
105109
/// Get the current logging level.
106110
log.Level get level => _logger.level;
107111

108-
/// Set the current logging level.
109-
set level(log.Level l) {
110-
_logger.level = l;
111-
}
112-
113112
/// Record a log message level [Logger.error] and throw a FatalError.
114113
/// This should only be called when the program has entered an impossible
115114
/// to recover from state or when something isn't implemented yet.

tools/engine_tool/test/logger_test.dart

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ void main() {
1212
}
1313

1414
test('Setting the level works', () {
15-
final Logger logger = Logger.test();
16-
logger.level = Logger.infoLevel;
15+
final Logger logger = Logger.test(level: Logger.infoLevel);
1716
expect(logger.level, equals(Logger.infoLevel));
1817
});
1918

@@ -42,8 +41,7 @@ void main() {
4241
});
4342

4443
test('info messages are recorded at the infoLevel log level', () {
45-
final Logger logger = Logger.test();
46-
logger.level = Logger.infoLevel;
44+
final Logger logger = Logger.test(level: Logger.infoLevel);
4745
logger.info('info');
4846
expect(stringsFromLogs(logger.testLogs), equals(<String>['info\n']));
4947
});
@@ -73,15 +71,13 @@ void main() {
7371
});
7472

7573
test('newlines in info() can be disabled', () {
76-
final Logger logger = Logger.test();
77-
logger.level = Logger.infoLevel;
74+
final Logger logger = Logger.test(level: Logger.infoLevel);
7875
logger.info('info', newline: false);
7976
expect(stringsFromLogs(logger.testLogs), equals(<String>['info']));
8077
});
8178

8279
test('fatal throws exception', () {
83-
final Logger logger = Logger.test();
84-
logger.level = Logger.infoLevel;
80+
final Logger logger = Logger.test(level: Logger.infoLevel);
8581
bool caught = false;
8682
try {
8783
logger.fatal('test', newline: false);

0 commit comments

Comments
 (0)