flutter_socket_logger 0.0.1 copy "flutter_socket_logger: ^0.0.1" to clipboard
flutter_socket_logger: ^0.0.1 copied to clipboard

A flutter remote log tool. It routes logs from your app to a remote log browser.

example/lib/main.dart

import 'dart:async';
import 'package:flutter/material.dart';

import 'package:flutter_socket_logger/flutter_socket_logger.dart';
import 'package:logger/logger.dart';

const String serverUrl = 'https://127.0.0.1';
Logger logger =
    Logger(output: MultiOutput([ConsoleOutput()])); //default log to local

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Logger',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Logger Example Homepage'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late LogInput _logInput;
  String _loggerId = '';

  void _initLogInput(String url) {
    _logInput = LogInput(
        url: url,
        onReady: (id) {
          setState(() {
            _loggerId = id;
          });

          logger.close();
          var logOutput = SocketOutput(url: url, peer: id);
          logger = Logger(
              output: MultiOutput([logOutput])); //switch logging to remote
        });
  }

  void _startLogStream(int milliseconds) {
    int c = 0;
    Timer.periodic(Duration(milliseconds: milliseconds), (t) {
      ++c;
      logger.w('ping 中文!$c ' * 100);
    });
  }

  @override
  void initState() {
    super.initState();

    _initLogInput(serverUrl);
    _startLogStream(1000);
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
        body: LogConsole(
      loggerId: _loggerId,
      logStream: _logInput.stream,
      dark: true,
    ));
  }

  @override
  void dispose() {
    _logInput.close();
    super.dispose();
  }
}
1
likes
65
pub points
0%
popularity

Publisher

unverified uploader

A flutter remote log tool. It routes logs from your app to a remote log browser.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter, logger, qr_flutter, socket_io_client

More

Packages that depend on flutter_socket_logger