Giter Site home page Giter Site logo

themisir / flutter-network-logger Goto Github PK

View Code? Open in Web Editor NEW
23.0 2.0 19.0 349 KB

Network logger with well designed user interface to inspect network traffic logs. Included with Dio interceptor.

Home Page: https://pub.dev/packages/network_logger

License: Apache License 2.0

Dart 38.15% Kotlin 0.18% Swift 1.64% Objective-C 0.05% CMake 25.72% C++ 29.66% C 2.02% HTML 2.58%
flutter logging flutter-logging dio traffic-monitoring dart

flutter-network-logger's Introduction

Network Logger

Network logger with well designed user interface to inspect network traffic logs. Included with Dio interceptor. You can start and inspect traffic just by writing 2 lines of code.

πŸ“· Screenshots

Log feed Log details

πŸš€ Getting Started!

You are 3 steps ahead from viewing http traffic logs on well designed GUI.

1. Install network_logger.

Check this guide to install network_logger to your flutter project.

2. Add DioNetworkLogger interceptor to dio client.

network_logger comes with Dio interceptor which will intercept traffic from Dio client. Other package implementations coming soon.

var dio = Dio();
dio.interceptors.add(DioNetworkLogger());

3. Attach network logger overlay button to UI.

The easiest way to access Network Logger UI is using NetworkLoggerOverlay which will display floating action button over all screens. You can also implement custom scenarios to open UI with different actions.

@override
void initState() {
  NetworkLoggerOverlay.attachTo(context);
  super.initState();
}

flutter-network-logger's People

Contributors

erolkaftanoglu avatar felixjunghans avatar franmaric avatar jtans avatar themisir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

flutter-network-logger's Issues

dio ^5.0.0 and network_logger any, version solving failed

Running "flutter pub get" in Flutter...
Resolving dependencies...
Because network_logger >=1.0.0 depends on dio ^4.0.0 and network_logger <1.0.0 depends on dio ^3.0.10, every version of network_logger requires dio ^3.0.10 or ^4.0.0.
So, because mindari depends on both dio ^5.0.0 and network_logger any, version solving failed.
pub get failed
command: "/Users/karthick/developement/flutter/bin/cache/dart-sdk/bin/dart __deprecated_pub --directory . get --example"
pub env: {
"FLUTTER_ROOT": "/Users/karthick/developement/flutter",
"PUB_ENVIRONMENT": "vscode.dart-code:flutter_cli:get",
"PUB_CACHE": "/Users/karthick/.pub-cache",
}

ι‡εˆ°δΈ€δΈͺι”™θ――

Unhandled Exception: Navigator operation requested with a context that does not include a Navigator.
The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.
E/flutter (10919): #0 Navigator.of. (package:flutter/src/widgets/navigator.dart:2607:9)
E/flutter (10919): #1 Navigator.of (package:flutter/src/widgets/navigator.dart:2614:6)
E/flutter (10919): #2 Navigator.push (package:flutter/src/widgets/navigator.dart:2072:22)
E/flutter (10919): #3 NetworkLoggerScreen.open (package:network_logger/src/ui.dart:263:22)
E/flutter (10919): #4 _NetworkLoggerButtonState._press (package:network_logger/src/ui.dart:179:33)
E/flutter (10919): #5 _InkResponseState.handleTap (package:flutter/src/material/ink_well.dart:1096:21)
E/flutter (10919): #6 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:253:24)
E/flutter (10919): #7 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:627:11)
E/flutter (10919): #8 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:306:5)
E/flutter (10919): #9 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:276:7)
E/flutter (10919): #10 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:163:27)
E/flutter (10919): #11 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:464:20)
E/flutter (10919): #12 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:440:22)
E/flutter (10919): #13 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:336:11)
E/flutter (10919): #14 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:395:7)
E/flutter (10919): #15 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:357:5)
E/flutter (10919): #16 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:314:7)
E/flutter (10919): #17 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:295:7)
E/flutter (10919): #18 _invoke1 (dart:ui/hooks.dart:164:13)
E/flutter (10919): #19 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:361:7)
E/flutter (10919): #20 _dispatchPointerDataPacket (dart:ui/hooks.dart:91:31)

Using super to extend Interceptor

On the overrides, is there any reason this isn't just calling super for onRequest, onResponse, and onError?

Ex: return super.onRequest(options, handler);

When I use Dio I have multiple interceptors so in my client class I have:

Dio _dio = Dio(BaseOptions( baseUrl: URL, contentType: 'application/json; charset=utf-8')) ..interceptors.add(DioNetworkLogger()) ..interceptors.add(OtherInterceptor()));

When I use DioNetworkLogger it seems to hang my requests. I added the supers to continue the chain of requests and seems to work fine.

TabAlignment issue on check request detail

Hi, is there any solution or fixing regarding this issue?
Thankyou.

image

Device:
image

> flutter doctor -v
[√] Flutter (Channel stable, 3.16.2, on Microsoft Windows [Version 10.0.22621.2715], locale en-ID)
    β€’ Flutter version 3.16.2 on channel stable at C:\flutter
    β€’ Upstream repository https://github.com/flutter/flutter.git
    β€’ Framework revision 9e1c857886 (3 months ago), 2023-11-30 11:51:18 -0600
    β€’ Engine revision cf7a9d0800
    β€’ Dart version 3.2.2
    β€’ DevTools version 2.28.3

Draggable NetworkLoggerButton?

@themisir We use NetworkLoggerButton and sometimes it would obstruct the view/button behind it.

We have a version where onLongPress, the button would enter in drag mode and you can drag it to a better position. Would you approve this kind of change? We would clean it up and make PR?

Dio interceptor: blocks every event

From the dio documentations

If you want to continue the request, call [handler.next].

However, in this package, the interceptor never uses the handler and therefore does not send events to the next interceptor, causing the event to be blocked.

Fix:
Just add handler.next at the end of each event ie. onRequest, onResponse ...

No response data in case of DioError

Hi. Thanks for the cool package. I noticed that in case of a DioError the response is not logged.
To fix the error, the following line must be changed.

dio.dart line 49

change
eventList.updated(event..error = err.toNetworkError());

to

eventList.updated(event..error = err.toNetworkError()..response = err.response?.toResponse());

Could you please release a new version with this fix? We would need the response data in case of a DioError.

Edit I have opened a PullRequest (#11) with the fix.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.