fn log()

in rust/ccommon-rs/src/log/shim.rs [71:103]


    fn log(&self, record: &Record) {
        let ptr = ccommon_dlog().load(Ordering::Relaxed);

        if !Self::enabled_ptr(record.metadata(), ptr) {
            return;
        }

        // +1 bytes are trailing nul bytes
        let mut buffer = [0; LOG_MAX_LEN as usize + 1];
        let mut filename = [0; FILENAME_MAX_LEN + 1];

        let _ = write!(&mut buffer[0..LOG_MAX_LEN as usize], "{}", record.args());

        // Make a best-effort attempt to provide a meainingful
        // location that is consistent with how ccommon does
        // log messages.
        let filestr = record
            .file()
            .or_else(|| record.module_path())
            .unwrap_or_else(|| record.target());
        let _ = write!(&mut filename[0..FILENAME_MAX_LEN], "{}", filestr);

        unsafe {
            _log(
                ptr,
                (&filename).as_ptr() as *const c_char,
                record.line().map(|x| x as c_int).unwrap_or(-1),
                level_to_int(record.level()),
                "%s\0".as_ptr() as *const c_char,
                (&buffer).as_ptr() as *const c_char,
            )
        }
    }