ql_logger_flutter 0.0.5
ql_logger_flutter: ^0.0.5 copied to clipboard
A package for efficiently storing and uploading server logs, designed to help developers track and manage log data from past events for debugging and monitoring purposes.
ql_logger_flutter #
======= A package for efficiently storing and uploading server logs, designed to help developers track and manage log data from past events for debugging and monitoring purposes.
Platform Support #
| Android | iOS | MacOS | Linux | Windows |
|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ |
Setup Instructions #
Initialize the ql_logger_flutter into your application #
This package automatically masks sensitive information such as emails, mobile numbers, and domains. It also masks commonly used keys, including: password, pass, pwd, firstName, lastName, name, first_name, last_name, fName, and lName.
For additional keys that require masking, you can provide them as a list of strings using the [maskKeys] parameter in the [initLoggerService] function.
Initialize server logger with [initLoggerService] method:
import 'package:ql_logger_flutter/server_logs.dart';
main() async{
///......
await ServerLogger.initLoggerService(
userId: '<userId>', //<Optional> Logs will be stored or handled separately for each user based on their unique user ID.
userName: '<userName>', //<Optional> Logs will be stored or handled separately for each user based on their unique user name.
env: '<environment>', // Specifies the current project environment (e.g., 'dev' for development).
apiToken:'<Auth token>', // use your API's authorization token here.
appName: '<App Name>', // You will get the app name from logger panel
url: '<Logger Url>', // URL where logs will be stored.
maskKeys: '<Mask Keys>', // Keys to be masked in your logs.
recordPermission: '<Record Permission>', // Key to enable or disable recording permissions.
durationInMin: '<Duration>', // Duration (in minutes) for periodically uploading logs.
recordNetworkLogs: '<Record Network Logs>' // Enable or disable recording of network connection logs.
);
///......
}
Make sure that the API which you are using here should accept the following keys.
project
env
date
log_type
log_name
content
The [initLoggerService] method contains the [upload] method, which automatically uploads your previously recorded logs.
Record your logs #
For recording the logs, you have to call [ServerLogger.log()] method:
import 'package:ql_logger_flutter/server_logs.dart';
/// Use this function to record your log.
ServerLogger.log(
message: '<Message>', // Log message or event details to be stored.
logType: '<Log Type>', // logType is used to define the type of logs you want to store
// available log type (custom/error/user/open)
recordNetworkLogs: '<Record Network Logs>' //Enable or disable recording of network connection logs.
);
Record the network requests #
For recording your network request just add the [ServerRequestInterceptor()] into your dio interceptor. This will automatically record you api logs, no need to handle separately
final Dio _dio = Dio();
_dio.interceptors.add(ServerRequestInterceptor());
Logs uploading status #
Sets callbacks to handle the response and errors from the log upload API.
ServerLogger.logUploadingResponse((response){
debugPrint('logger api success response: ${response.toString()}');
}, onError: (e){
debugPrint('logger api error response: ${e.toString()}');
});
Captures errors during an async log call. #
Set a callback function to handle exceptions that occur during logging.
ServerLogger.onException(onError: (error){
debugPrint('log exception: ${error.toString()}');
});
Checks if the logger is initialized. #
Checks if the logger service is ready before logging operations.
ServerLogger.isInitialized
Following functions used to #
Set your user's Configuration #
ServerLogger.setUserConfig(config: UserConfig(userId: '<userId>', userName: '<userName>'));
get your user's Configuration #
UserConfig config = ServerLogger.getUserConfig();