1 | | | import 'squadron_logger.dart'; |
2 | | |
|
3 | | | /// Squadron "Singleton" |
4 | | | /// The main application thread and each worker thread will have their own private Squadron singleton |
5 | | | class Squadron { |
6 | | 0 | Squadron._(); |
7 | | |
|
8 | | 2 | static int _logLevel = SquadronLogLevel.OFF; |
9 | | |
|
10 | | | /// Gets the log level. Propagates to workers with the value that is/was set at the time the worker it created. Changes to this property do not propagate by default. |
11 | | 5 | static int get logLevel => logger?.logLevel ?? _logLevel; |
12 | | |
|
13 | | | /// Sets the log level |
14 | | 2 | static set logLevel(int value) { |
15 | | 3 | logger?.logLevel = value; |
16 | | | _logLevel = value; |
17 | | 1 | } |
18 | | |
|
19 | | | static SquadronLogger? _logger; |
20 | | |
|
21 | | | /// Gets the current logger, if set. |
22 | | 2 | static SquadronLogger? get logger => _logger; |
23 | | |
|
24 | | | /// Sets the current logger |
25 | | 2 | static set logger(SquadronLogger? logger) { |
26 | | 2 | final level = logLevel; |
27 | | | _logger = logger; |
28 | | 2 | _logger?.logLevel = level; |
29 | | 1 | } |
30 | | |
|
31 | | | static String? _id; |
32 | | |
|
33 | | | /// Squadron instance id to track identity of threads/workers |
34 | | | /// Returns `<undefined>` if it has not been set yet |
35 | | 2 | static String get id => _id ?? '<undefined>'; |
36 | | |
|
37 | | | /// Sets the Squadron instance id. |
38 | | | /// Once set, the id cannot be modified. |
39 | | 2 | static setId(String? value) { |
40 | | 1 | if (_id == null && value != null) { |
41 | | 2 | value = value.trim(); |
42 | | 1 | if (value.isNotEmpty) { |
43 | | | _id ??= value; |
44 | | | } |
45 | | | } |
46 | | 1 | } |
47 | | |
|
48 | | | /// Logs a message at [SquadronLogLevel.FINEST] level |
49 | | 3 | static void finest(dynamic message) => logger?.finest(message); |
50 | | |
|
51 | | | /// Logs a message at [SquadronLogLevel.FINER] level |
52 | | 3 | static void finer(dynamic message) => logger?.finer(message); |
53 | | |
|
54 | | | /// Logs a message at [SquadronLogLevel.FINE] level |
55 | | 3 | static void fine(dynamic message) => logger?.fine(message); |
56 | | |
|
57 | | | /// Logs a message at [SquadronLogLevel.CONFIG] level |
58 | | 3 | static void config(dynamic message) => logger?.config(message); |
59 | | |
|
60 | | | /// Logs a message at [SquadronLogLevel.CONFIG] level |
61 | | 3 | static void info(dynamic message) => logger?.info(message); |
62 | | |
|
63 | | | /// Logs a message at [SquadronLogLevel.CONFIG] level |
64 | | 3 | static void warning(dynamic message) => logger?.warning(message); |
65 | | |
|
66 | | | /// Logs a message at [SquadronLogLevel.CONFIG] level |
67 | | 3 | static void severe(dynamic message) => logger?.severe(message); |
68 | | |
|
69 | | | /// Logs a message at [SquadronLogLevel.CONFIG] level |
70 | | 3 | static void shout(dynamic message) => logger?.shout(message); |
71 | | | } |