1.0.0
This commit is contained in:
parent
f5dd02e9ef
commit
601b7b406b
6 changed files with 110 additions and 1 deletions
2
CHANGELOG.md
Normal file
2
CHANGELOG.md
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# 1.0.0
|
||||||
|
* Initial release.
|
32
README.md
32
README.md
|
@ -1,2 +1,32 @@
|
||||||
# pretty_logging
|
# pretty\_logging
|
||||||
Standalone helper for colorful logging output, using pkg:io AnsiCode.
|
Standalone helper for colorful logging output, using pkg:io AnsiCode.
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
In your `pubspec.yaml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
dependencies:
|
||||||
|
pretty_logging: 1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
Basic usage is very simple:
|
||||||
|
|
||||||
|
```dart
|
||||||
|
myLogger.onRecord.listen(prettyLog);
|
||||||
|
```
|
||||||
|
|
||||||
|
However, you can conditionally pass logic to omit printing an
|
||||||
|
error, provide colors, or to provide a custom print function:
|
||||||
|
|
||||||
|
```dart
|
||||||
|
var pretty = prettyLog(
|
||||||
|
logColorChooser: (_) => red,
|
||||||
|
printFunction: stderr.writeln,
|
||||||
|
omitError: (r) {
|
||||||
|
var err = r.error;
|
||||||
|
return err is AngelHttpException && err.statusCode != 500;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
myLogger.onRecord.listen(pretty);
|
||||||
|
```
|
||||||
|
|
4
analysis_options.yaml
Normal file
4
analysis_options.yaml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
include: package:pedantic/analysis_options.yaml
|
||||||
|
analyzer:
|
||||||
|
strong-mode:
|
||||||
|
implicit-casts: false
|
11
example/main.dart
Normal file
11
example/main.dart
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
import 'package:logging/logging.dart';
|
||||||
|
import 'package:pretty_logging/pretty_logging.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
Logger.root
|
||||||
|
..level = Level.ALL
|
||||||
|
..onRecord.listen(prettyLog)
|
||||||
|
..info('Hey!')
|
||||||
|
..finest('Bye!')
|
||||||
|
..severe('Oops!', StateError('Wrong!'), StackTrace.current);
|
||||||
|
}
|
50
lib/pretty_logging.dart
Normal file
50
lib/pretty_logging.dart
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
import 'package:logging/logging.dart';
|
||||||
|
import 'package:io/ansi.dart';
|
||||||
|
|
||||||
|
/// Prints the contents of a [LogRecord] with pretty colors.
|
||||||
|
///
|
||||||
|
/// By passing [omitError], you can omit printing the error of a given
|
||||||
|
/// [LogRecord].
|
||||||
|
///
|
||||||
|
/// You can also pass a custom [printFunction] or [logColorChooser].
|
||||||
|
void prettyLog(LogRecord record,
|
||||||
|
{bool Function(LogRecord) omitError,
|
||||||
|
void Function(String) printFunction,
|
||||||
|
AnsiCode Function(Level) logColorChooser}) {
|
||||||
|
logColorChooser ??= chooseLogColor;
|
||||||
|
omitError ??= (_) => false;
|
||||||
|
printFunction ??= print;
|
||||||
|
|
||||||
|
var code = logColorChooser(record.level);
|
||||||
|
if (record.error == null) printFunction(code.wrap(record.toString()));
|
||||||
|
|
||||||
|
if (record.error != null) {
|
||||||
|
var err = record.error;
|
||||||
|
if (omitError(record)) return;
|
||||||
|
printFunction(code.wrap(record.toString() + '\n'));
|
||||||
|
printFunction(code.wrap(err.toString()));
|
||||||
|
|
||||||
|
if (record.stackTrace != null) {
|
||||||
|
printFunction(code.wrap(record.stackTrace.toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Chooses a color based on the logger [level].
|
||||||
|
AnsiCode chooseLogColor(Level level) {
|
||||||
|
if (level == Level.SHOUT) {
|
||||||
|
return backgroundRed;
|
||||||
|
} else if (level == Level.SEVERE) {
|
||||||
|
return red;
|
||||||
|
} else if (level == Level.WARNING) {
|
||||||
|
return yellow;
|
||||||
|
} else if (level == Level.INFO) {
|
||||||
|
return cyan;
|
||||||
|
} else if (level == Level.CONFIG ||
|
||||||
|
level == Level.FINE ||
|
||||||
|
level == Level.FINER ||
|
||||||
|
level == Level.FINEST) {
|
||||||
|
return lightGray;
|
||||||
|
}
|
||||||
|
return resetAll;
|
||||||
|
}
|
12
pubspec.yaml
Normal file
12
pubspec.yaml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
name: pretty_logging
|
||||||
|
version: 1.0.0
|
||||||
|
description: Standalone helper for colorful logging output, using pkg:io AnsiCode.
|
||||||
|
author: Tobe Osakwe <thosakwe@gmail.com>
|
||||||
|
homepage: https://github.com/angel-dart/pretty_logging
|
||||||
|
environment:
|
||||||
|
sdk: ">=2.0.0 <3.0.0"
|
||||||
|
dependencies:
|
||||||
|
io: ^0.3.2
|
||||||
|
logging: ^0.11.0
|
||||||
|
dev_dependencies:
|
||||||
|
pedantic: ^1.0.0
|
Loading…
Reference in a new issue