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.
Libraries
- dart_logging_abstraction
- Provide logging interfaces, common objects and with out any implementations.