dart_frog_request_logger

Creator: coderz1093

Last updated:

Add to Cart

Description:

dart frog request logger

Request Logger ๐Ÿชต #




A middleware for dart_frog that helps write logs.
Features โœจ #

๐ŸŽฏ๐Ÿธ Works out of the box with Dart Frog.
โ˜๏ธ Built-in support for console-based logs & Google Cloud Logging.
๐Ÿ“‹ Includes a ton of debugging information, including stacktraces.
๐Ÿงช 100% code coverage verified with Very Good Workflows.

Quickstart ๐Ÿš€ #
This is a simplified example. For a full example visit /examples/dart_frog
Setup ๐Ÿ—๏ธ #
Add the RequestLogger middleware in your top level _middleware.dart file.
import 'package:dart_frog/dart_frog.dart';
import 'package:dart_frog_request_logger/dart_frog_request_logger.dart';
import 'package:request_logger/log_formatters.dart';

Handler middleware(Handler handler) {
return handler.use(
provider<RequestLogger>(
(context) => RequestLogger(
headers: context.request.headers,
logFormatter: formatSimpleLog(),
),
),
);
}
copied to clipboard
Write Logs ๐Ÿ“ #
Read the RequestLogger from the RequestContext.
import 'package:dart_frog/dart_frog.dart';
import 'package:dart_frog_request_logger/dart_frog_request_logger.dart';

Response onRequest(RequestContext context) {
final logger = context.read<RequestLogger>();
logger.debug('Hello Logs');
return Response();
}
copied to clipboard
Using Different Log Formats #
Request logger supports log formats by providing a different LogFormatter when adding your middleware. You can either provide your own or use one of the built-in formatters.
Built-in Formatters #
All of the built in log formats live under package:request_logger/log_formatters.dart.
The built-in loggers currently are:

formatSimpleLog(): Formats a log with no particular specification - great for local development.
formatCloudLoggingLog(): Formats a log for Google Cloud Logging

Make You Own Formatter #
You can make your own formatter for your own specification! Just make sure it returns a String.
Example:
LogFormatter formatMyCustomLog() => ({
required Severity severity,
required String message,
required Request request,
Map<String, dynamic>? payload,
Map<String, dynamic>? labels,
bool? isError,
Chain? chain,
Frame? stackFrame,
}) {
return 'My custom log: $message';
};
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.