Skip to content

Instantly share code, notes, and snippets.

@cirediew
Last active March 4, 2019 13:42
Show Gist options
  • Save cirediew/c43a8018b0fb202917b3350f143c4b3d to your computer and use it in GitHub Desktop.
Save cirediew/c43a8018b0fb202917b3350f143c4b3d to your computer and use it in GitHub Desktop.
Static Flutter console log
import 'dart:developer';
import 'package:logging/logging.dart';
import 'package:stack_trace/stack_trace.dart';
class LOG {
static String _getTag() {
try {
var t = Trace.current(2);
var fileLine = t.frames[0].toString().split(" ");
//return name and line number
return "${fileLine[0]} ${fileLine[1]} :: ";
} catch (ignore) {
return "";
}
}
static finest(dynamic message) =>
log("${DateTime.now()} ${_getTag()} $message", level: Level.FINEST.value);
static finer(dynamic message) =>
log("${DateTime.now()} ${_getTag()} $message", level: Level.FINER.value);
static fine(dynamic message) =>
log("${DateTime.now()} ${_getTag()} $message", level: Level.FINE.value);
static config(dynamic message) =>
log("${DateTime.now()} ${_getTag()} $message", level: Level.CONFIG.value);
static info(dynamic message) =>
log("${DateTime.now()} ${_getTag()} $message", level: Level.INFO.value);
static warn(dynamic message) =>
log("${DateTime.now()} ${_getTag()} $message", level: Level.WARNING.value);
static severe(dynamic message) =>
log("${DateTime.now()} ${_getTag()} $message", level: Level.SEVERE.value);
static shout(dynamic message) =>
log("${DateTime.now()} ${_getTag()} $message", level: Level.SHOUT.value);
static exception({dynamic message, dynamic exception, StackTrace stacktrace}) {
if (message != null)
shout(message);
if (exception != null || stacktrace != null)
_printStackTrace(exception, stacktrace);
}
static _printStackTrace(dynamic exception, StackTrace trace) {
log("${DateTime.now()} $exception", level: Level.SHOUT.value);
trace?.toString()?.split("#")?.forEach((line) {
if (line.isNotEmpty) {
log(line, level: Level.SHOUT.value);
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment