-
Notifications
You must be signed in to change notification settings - Fork 67
Open
Description
Hi!
Thanks for the great package!
Can you please support an external logger as an optional alternative to the internal print
? Something like:
import 'dart:developer';
SmtpClient.logger = log;
where log
is
void log(String message, {
DateTime? time,
int? sequenceNumber,
int level = 0,
String name = '',
Zone? zone,
Object? error,
StackTrace? stackTrace,
});
``` from the `dart:developer`.
and in your `ClientBase.log` method smth like:
```dart
typedef Logger = void Function(String message, {String name});
/// An optional external logger.
Logger? logger;
void log(final Object? logObject, {
final bool isClient = true,
String? initial,
})
{
if (isLogEnabled) {
initial ??= (isClient == true) ? initialClient : initialServer;
if (logger != null) {
logger(logObject?.toString() ?? '',
name: initial,
);
} else if (logName != null) {
logger()
print('$logName $initial: $logObject');
} else {
print('$initial: $logObject');
}
}
}
So it will be compatible with dart:developer
and package:logging
at the choice of the package user.
As an alternative, you could use package:logging
inside of your package and provide an access to the log level of this logger to set the log level externally (like in the hotreloader package).
Thanks again for your package, guys!
Metadata
Metadata
Assignees
Labels
No labels