1 unstable release

0.1.0 Apr 4, 2020

#854 in Debugging

MIT/Apache

4KB

camarim

Easy setup logging on FFI libs for mobile devices

camarim: (pt-br) Backstage room on the theater where actors get ready to show up on stage


This crate let you easilly get logging available for FFI libraries, specially when targeting Android and iOS devices.

Installation

Add the library as an optional dependency

You can use the library as an optional dependency, to use only during debug. On Cargo.toml add:

[dependencies.camarim]
version = '0.1.0'
optional = true

[features]
logs = ['camarim']

Add the library on the root of the FFI crate

#[cfg(feature = "logs")]
camarim::install!();

Build your library with the feature enabled

cross build --features logs --target x86_64-linux-android

Call the setup to intialize the logger

On the FFI side, use the camarim_setup_logger function to setup the logging.

For example, in Dart:

import 'dart:ffi' as ffi;

final ffi.DynamicLibrary _myLib = Platform.isAndroid
    ? ffi.DynamicLibrary.open("libmylib.so")
    : ffi.DynamicLibrary.process();


/// Find `camarim_setup_logger` to call it during your app startup
final startLogger =
    _sledNative.lookupFunction<ffi.Void Function(), void Function()>(
        "camarim_setup_logger");

/// ... declare the your crate exposed functions

TODO

  • WASM and Browser logging?
  • Provide ways to customize log level?

Relevant issues

Dependencies

~45–540KB