Skip to content

Commit

Permalink
Added BurtLog and handling
Browse files Browse the repository at this point in the history
  • Loading branch information
Levi-Lesches committed Dec 1, 2023
1 parent 79588ae commit c5400c4
Show file tree
Hide file tree
Showing 57 changed files with 2,076 additions and 1,073 deletions.
2 changes: 1 addition & 1 deletion Protobuf
Submodule Protobuf updated 1 files
+40 −0 logs.proto
3 changes: 3 additions & 0 deletions example/client.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
import "dart:io";
import "package:burt_network/burt_network.dart";
import "package:burt_network/logging.dart";

final destination = SocketInfo(
address: InternetAddress("192.168.47.223"),
port: 8001,
);

final logger = BurtLogger();

class BasicServer extends ProtoSocket {
BasicServer({required super.port, required super.device}) : super(
destination: destination,
Expand Down
3 changes: 3 additions & 0 deletions example/server.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import "package:burt_network/burt_network.dart";
import "package:burt_network/logging.dart";

final logger = BurtLogger();

class BasicServer extends ServerSocket {
BasicServer({required super.port, required super.device});
Expand Down
2 changes: 1 addition & 1 deletion lib/burt_network.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ export "src/socket_info.dart";
export "src/udp_socket.dart";

export "generated.dart";
export "logging.dart";
// export "logging.dart";
1 change: 1 addition & 0 deletions lib/generated.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export "src/generated/core.pb.dart";
export "src/generated/drive.pb.dart";
export "src/generated/electrical.pb.dart";
export "src/generated/gps.pb.dart";
export "src/generated/logs.pb.dart";
export "src/generated/mars.pb.dart";
export "src/generated/science.pb.dart";
export "src/generated/video.pb.dart";
Expand Down
67 changes: 53 additions & 14 deletions lib/logging.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,44 +2,83 @@
library;

import "dart:io";
import "package:burt_network/burt_network.dart";
import "package:logger/logger.dart";
export "package:logger/logger.dart";

/// An alias for [Level].
typedef LogLevel = Level;

/// The logger to use when running BURT programs.
///
/// See [LoggerUtils] for usage. To change the minimum log level, use [Logger.level].
final logger = Logger(
printer: SimplePrinter(colors: stdout.supportsAnsiEscapes),
filter: ProductionFilter(),
);
// /// The logger to use when running BURT programs.
// ///
// /// See [LoggerUtils] for usage. To change the minimum log level, use [Logger.level].
// final logger = Logger(
// printer: SimplePrinter(colors: stdout.supportsAnsiEscapes),
// filter: ProductionFilter(),
// );

class BurtLogger {
final Logger logger = Logger(
printer: SimplePrinter(colors: stdout.supportsAnsiEscapes),
filter: ProductionFilter(),
);

final ServerSocket? socket;
BurtLogger([this.socket]);

String getMessage(String title, String? body) => body == null
? title : "$title -- $body".trim();

/// Helpful aliases for the [Logger] class.
extension LoggerUtils on Logger {
/// Logs a debug message.
///
/// Use this to print values you want to inspect later.
void trace(String message) => t(message);
void trace(String title, {String? body}) {
logger.t(getMessage(title, body));
final log = BurtLog(level: BurtLogLevel.trace, title: title, body: body);
socket?.sendMessage(log);
}

/// Logs a verbose message.
///
/// Use this to print status updates that can help debugging.
void debug(String message) => d(message);
void debug(String title, {String? body}) {
logger.d(getMessage(title, body));
final log = BurtLog(level: BurtLogLevel.debug, title: title, body: body);
socket?.sendMessage(log);
}

/// Logs an info message.
///
/// Use this to print status updates for the user to see.
void info(String message) => i(message);
void info(String title, {String? body}) {
logger.i(getMessage(title, body));
final log = BurtLog(level: BurtLogLevel.info, title: title, body: body);
socket?.sendMessage(log);
}

/// Logs a warning.
///
/// Use this to indicate something has gone wrong but can be recovered.
void warning(String message) => w(message);
void warning(String title, {String? body}) {
logger.w(getMessage(title, body));
final log = BurtLog(level: BurtLogLevel.warning, title: title, body: body);
socket?.sendMessage(log);
}

/// Logs a warning.
///
/// Use this to indicate something has gone wrong but can be recovered.
void error(String title, {String? body}) {
logger.e(getMessage(title, body));
final log = BurtLog(level: BurtLogLevel.error, title: title, body: body);
socket?.sendMessage(log);
}

/// Logs a critical message.
///
/// Use this to indicate that the program cannot recover and must terminate.
void critical(String message) => f(message);
void critical(String title, {String? body}) {
logger.f(getMessage(title, body));
socket?.setError(title, body: body);
}
}
Loading

0 comments on commit c5400c4

Please sign in to comment.