f_logs 0.0.3 copy "f_logs: ^0.0.3" to clipboard
f_logs: ^0.0.3 copied to clipboard

outdated

FLog provides quick & simple logging solution. All logs are saved to the DB which can then be exported in files.

example/lib/main.dart

import 'package:f_logs/model/datalog/data_log_type.dart';
import 'package:f_logs/model/flog/flog.dart';
import 'package:f_logs/model/flog/flog_config.dart';
import 'package:f_logs/model/flog/log_level.dart';
import 'package:f_logs/utils/formatter/formate_type.dart';
import 'package:f_logs/utils/timestamp/timestamp_format.dart';
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';

void main() {
  init();
  runApp(HomePage());
}

init() {
  LogsConfig config = LogsConfig()
    ..isDebuggable = true
    ..customClosingDivider = "|"
    ..customOpeningDivider = "|"
    ..csvDelimiter = ", "
    ..isLogEnabled = true
    ..encryptionEnabled = false
    ..encryptionKey = ""
    ..formatType = FormatType.FORMAT_CURLY
    ..logLevelsEnabled = [LogLevel.INFO, LogLevel.ERROR]
    ..dataLogTypes = [
      DataLogType.DEVICE.toString(),
      DataLogType.NETWORK.toString(),
      "Zubair"
    ]
    ..timestampFormat = TimestampFormat.TIME_FORMAT_READABLE;

  FLog.applyConfigurations(config);
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  //runtime permission
  final PermissionGroup _permissionGroup = PermissionGroup.storage;

  @override
  void initState() {
    super.initState();
    requestPermission(_permissionGroup);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              _buildTextField(),
              _buildRow1(),
              _buildRow2(),
              _buildRow3(),
            ],
          ),
        ),
      ),
    );
  }

  _buildTextField() {
    return CircularProgressIndicator();
//    return TextFormField(
//      decoration: InputDecoration(hintText: "Enter text"),
//    );
  }

  _buildRow1() {
    return Row(
      children: <Widget>[
        _buildButton("Log Event", () {
          for (int i = 0; i < 2; i++) {
            if (i % 2 == 0) {
              FLog.logThis(
                  className: "HomePage",
                  methodName: "_buildRow1",
                  text: "My log",
                  type: LogLevel.INFO,
                  dataLogType: DataLogType.DEVICE.toString());
            } else {
              FLog.logThis(
                  className: "HomePage",
                  methodName: "_buildRow1",
                  text: "My log",
                  type: LogLevel.ERROR,
                  dataLogType: "Zubair",
                  exception: Exception("This is a test"));
            }
            FLog.logThis(
                className: "HomePage",
                methodName: "_buildRow1",
                text: "My log",
                dataLogType: "Umair",
                type: LogLevel.WARNING);
          }
        }),
        Padding(padding: EdgeInsets.symmetric(horizontal: 5.0)),
        _buildButton("Print Logs", () {
          FLog.printLogs();
        }),
      ],
    );
  }

  _buildRow2() {
    return Row(
      children: <Widget>[
        _buildButton("Export Logs", () {
          FLog.exportLogs();
        }),
        Padding(padding: EdgeInsets.symmetric(horizontal: 5.0)),
        _buildButton("Clear Logs", () {
          FLog.clearLogs();
        }),
      ],
    );
  }

  _buildRow3() {
    return Row(
      children: <Widget>[
        _buildButton("Print File Logs", () {
          FLog.printFileLogs();
        }),
        Padding(padding: EdgeInsets.symmetric(horizontal: 5.0)),
        _buildButton("Print Data Logs", () {
          FLog.printDataLogs(
            dataLogsType: [DataLogType.DEVICE.toString(), "Zubair", "Jawad"],
            logLevels: [LogLevel.ERROR.toString(), LogLevel.WARNING.toString()],
//            startTimeInMillis: 1556132400000,
//            endTimeInMillis: 1556650800000,
          );
        }),
      ],
    );
  }

  _buildButton(String title, VoidCallback onPressed) {
    return Expanded(
      child: MaterialButton(
        onPressed: onPressed,
        child: Text(title),
        textColor: Colors.white,
        color: Colors.blueAccent,
      ),
    );
  }

  //permission methods:---------------------------------------------------------
  Future<void> requestPermission(PermissionGroup permission) async {
    final List<PermissionGroup> permissions = <PermissionGroup>[permission];
    final Map<PermissionGroup, PermissionStatus> permissionRequestResult =
        await PermissionHandler().requestPermissions(permissions);
  }
}
95
likes
0
pub points
93%
popularity

Publisher

unverified uploader

FLog provides quick &amp; simple logging solution. All logs are saved to the DB which can then be exported in files.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, intl, meta, path, path_provider, permission_handler, sembast

More

Packages that depend on f_logs