enum LogLevel { debug, info, warning, error } class Log { static LogLevel level = LogLevel.debug; /// debug static void d(String message) { if (level.index <= LogLevel.debug.index) { print(message); } } /// info static void i(String message) { if (level.index <= LogLevel.info.index) { print(message); } } /// warning static void w(String message) { if (level.index <= LogLevel.warning.index) { print(message); } } /// error static void e(String message) { if (level.index <= LogLevel.error.index) { print(message); } } } extension LogExtension on String { String logD() { Log.d(this); return this; } String logI() { Log.i(this); return this; } String logW() { Log.w(this); return this; } String logE() { Log.e(this); return this; } }