#flutter #logging #dart #debugging-logging #mobile

flutter_logger

logging library for using rust together with flutter/dart and flutter_rust_bridge

7 releases (breaking)

0.6.1 Mar 10, 2024
0.6.0 Feb 7, 2024
0.5.0 Jan 24, 2024
0.4.0 Aug 16, 2023
0.1.0 Jul 12, 2023

#322 in Debugging

Download history 340/week @ 2024-07-24 251/week @ 2024-07-31 287/week @ 2024-08-07 163/week @ 2024-08-14 119/week @ 2024-08-21 107/week @ 2024-08-28 150/week @ 2024-09-04 29/week @ 2024-09-11 87/week @ 2024-09-18 94/week @ 2024-09-25 101/week @ 2024-10-02 87/week @ 2024-10-09 110/week @ 2024-10-16 192/week @ 2024-10-23 156/week @ 2024-10-30 212/week @ 2024-11-06

679 downloads per month

MIT/Apache

28KB
626 lines

flutter_logger

implementation of the log crate for using rust together with flutter/dart and flutter_rust_bridge to get logs from rust into your app.

features

  • panic: print rust panics to the log stream.

usage

The library contains a macro for all the code you have to include in your flutter_rust_bridge api definition. Calling the macro without args creates the init function "setup_log_stream" with LeveFilter::Debug. You can also specify function name and LevelFilter (or only one). The macro can only be called once because of conflicting implementations

rust


// only one of these calls can be active
flutter_logger::flutter_logger_init!(); // default
// flutter_logger::flutter_logger_init!(LeveFilter::Trace); // sepcify level
// flutter_logger::flutter_logger_init!(logger_init); // sepcify name
// flutter_logger::flutter_logger_init!(info_logger, LevelFilter::Info); // sepcify both

pub fn test(i: i32) {
    // using the 'log' crate macros
    info!("test called with: {i}")
}

dart/flutter

Future setupLogger() async {
    setupLogStream().listen((msg){
    // This should use a logging framework in real applications
        print("${msg.logLevel} ${msg.lbl.padRight(8)}: ${msg.msg}");
    });
}

void main(){
    await RustLib.init();
    await setupLogger();
    await test(i: 5);
}

This works also on mobile apps like Android where println() in rust isn't shown in the console.

Dependencies

~135KB