dart_logging_abstraction 1.1.0
dart_logging_abstraction: ^1.1.0 copied to clipboard
A logging abstraction package for logging, defines interfaces, common classes and default implementations.
dart_logging_abstraction #
A logging abstraction package for logging.
Features #
Provide logging interfaces, common objects and with example implementations.
Getting started #
Install this package, use other logging package implementation adapt to this package.
Usage #
import 'package:dart_logging_abstraction/dart_logging_abstraction.dart';
void main() {
// Logging implementation example can find in lib/src/console_logging.dart
final traceLogger = LoggerFactory(minLevel: LogLevel.trace).createLogger<MyClass>();
traceLogger.fatal("Fatal on traceLogger", error: Error(), stackTrace: StackTrace.current);
traceLogger.error("Error on traceLogger", error: Error(), stackTrace: StackTrace.current);
traceLogger.warn("Warning on traceLogger");
traceLogger.info("Info on traceLogger");
traceLogger.debug("Debug on traceLogger");
traceLogger.trace("trace on traceLogger");
final infoLogger = LoggerFactory(minLevel: LogLevel.info).create("InfoLogger");
infoLogger.fatal("Fatal on infoLogger", error: Error(), stackTrace: StackTrace.current);
infoLogger.error("Error on infoLogger", error: Error(), stackTrace: StackTrace.current);
infoLogger.warn("Warning on infoLogger");
infoLogger.info("Info on infoLogger");
infoLogger.debug("Debug on infoLogger");
infoLogger.trace("trace on infoLogger");
}
class MyClass {}
/// An example console logger implementation of [ILogger]
class ConsoleLogger implements ILogger {
@override
final String name;
final LogLevel _minLevel;
const ConsoleLogger({required this.name, required LogLevel minLevel}) : _minLevel = minLevel;
@override
bool isEnabled(LogLevel logLevel) => logLevel >= _minLevel;
@override
void log(message, LogLevel logLevel, {Object? error, StackTrace? stackTrace}) {
if (!isEnabled(logLevel)) {
return;
}
final writer = StringBuffer();
writer.writeln("[${logLevel.name}] ${DateTime.now()} [$name]");
writer.writeln(message);
if (error != null) {
writer.writeln(error);
}
if (stackTrace != null) {
writer.writeln(stackTrace);
}
writer.write("\b\b");
print(writer);
}
}
/// An example console logger factory implementation of [ILogger]
class LoggerFactory implements ILoggerFactory {
final LogLevel _minLevel;
const LoggerFactory({required LogLevel minLevel}) : _minLevel = minLevel;
@override
ILogger create(String name) {
return ConsoleLogger(name: name, minLevel: _minLevel);
}
}
Implementations #
- dart_service_logger
Using logger and support dart_service_provider extensions.
Want to be on the list? Contact me.
Additional information #
If you have any issues or suggests please redirect to repo or send an email to me.