// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. // ignore_for_file: constant_identifier_names /// [Level]s to control logging output. Logging can be enabled to include all /// levels above certain [Level]. [Level]s are ordered using an integer /// value [Level.value]. The predefined [Level] constants below are sorted as /// follows (in descending order): [Level.SHOUT], [Level.SEVERE], /// [Level.WARNING], [Level.INFO], [Level.CONFIG], [Level.FINE], [Level.FINER], /// [Level.FINEST], and [Level.ALL]. /// /// We recommend using one of the predefined logging levels. If you define your /// own level, make sure you use a value between those used in [Level.ALL] and /// [Level.OFF]. class Level implements Comparable { final String name; /// Unique value for this level. Used to order levels, so filtering can /// exclude messages whose level is under certain value. final int value; const Level(this.name, this.value); /// Special key to turn on logging for all levels ([value] = 0). static const Level ALL = Level('ALL', 0); /// Special key to turn off all logging ([value] = 2000). static const Level OFF = Level('OFF', 2000); /// Key for highly detailed tracing ([value] = 300). static const Level FINEST = Level('FINEST', 300); /// Key for fairly detailed tracing ([value] = 400). static const Level FINER = Level('FINER', 400); /// Key for tracing information ([value] = 500). static const Level FINE = Level('FINE', 500); /// Key for static configuration messages ([value] = 700). static const Level CONFIG = Level('CONFIG', 700); /// Key for informational messages ([value] = 800). static const Level INFO = Level('INFO', 800); /// Key for potential problems ([value] = 900). static const Level WARNING = Level('WARNING', 900); /// Key for serious failures ([value] = 1000). static const Level SEVERE = Level('SEVERE', 1000); /// Key for extra debugging loudness ([value] = 1200). static const Level SHOUT = Level('SHOUT', 1200); static const List LEVELS = [ ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, SHOUT, OFF ]; @override bool operator ==(Object other) => other is Level && value == other.value; bool operator <(Level other) => value < other.value; bool operator <=(Level other) => value <= other.value; bool operator >(Level other) => value > other.value; bool operator >=(Level other) => value >= other.value; @override int compareTo(Level other) => value - other.value; @override int get hashCode => value; @override String toString() => name; }