init static method
Initialise the logger from the given config
.
Implementation
static Future<bool> init(Map<String, dynamic>? config,
{bool test = false,
DateTime? date,
int clientProxyCallDepthOffset = 0}) async {
if (config == null || config.isEmpty) {
_singleton = Logger._empty();
return true; // Some tests rely on defining this by code
}
var definedAppenders = <Appender>[
ConsoleAppender(),
FileAppender(),
HttpAppender(),
EmailAppender(),
MySqlAppender()
];
var activeAppenders = <Appender>[];
for (Map<String, dynamic> app in config['appenders']) {
if (!app.containsKey('type')) {
throw ArgumentError('Missing type for appender');
}
for (var a in definedAppenders) {
if (app['type'].toLowerCase() == a.getType().toLowerCase()) {
var appender = a.getInstance();
await appender.init(app, test, date);
activeAppenders.add(appender);
}
}
}
_singleton = Logger._(definedAppenders, activeAppenders,
clientDepthOffset: clientProxyCallDepthOffset);
return true;
}