writeLogMessageEx function

void writeLogMessageEx(
  1. LogLevel logLevel,
  2. String message, {
  3. String? tag,
  4. String? file,
  5. int? line,
  6. String? func,
})

Writes a log message.

if tag, file, line, func are all null, then it will be the same as writeLogMessage.

Implementation

void writeLogMessageEx(
  LogLevel logLevel,
  String message, {
  String? tag,
  String? file,
  int? line,
  String? func,
}) {
  final cmsg = message.toNativeUtf8().cast<ffi.Char>();

  if (tag == null && file == null && line == null && func == null) {
    ccore.writeLogMessage(logLevel.value, cmsg);
  } else {
    final ctag = (tag ?? "").toNativeUtf8().cast<ffi.Char>();
    final cfile = (file ?? "").toNativeUtf8().cast<ffi.Char>();
    final cfunc = (func ?? "").toNativeUtf8().cast<ffi.Char>();
    ccore.writeLogMessageEx(logLevel.value, ctag, cfile, line ?? -1, cfunc, cmsg);
    calloc.free(ctag);
    calloc.free(cfile);
    calloc.free(cfunc);
  }

  calloc.free(cmsg);
}