Last active
March 4, 2019 13:42
-
-
Save cirediew/c43a8018b0fb202917b3350f143c4b3d to your computer and use it in GitHub Desktop.
Static Flutter console log
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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