This repository has been archived on 2023-11-05. You can view files and clone it, but cannot push or open issues or pull requests.
wasm-micro-runtime/core/shared/utils/bh_log.c
Wenyong Huang 17f62ad472
Apply clang-format for core/shared and product-mini files (#785)
Apply clang-format for core/shared and product-mini files
2021-10-14 09:12:07 +08:00

79 lines
1.7 KiB
C

/*
* Copyright (C) 2019 Intel Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*/
#include "bh_log.h"
/**
* The verbose level of the log system. Only those verbose logs whose
* levels are less than or equal to this value are outputed.
*/
static uint32 log_verbose_level = BH_LOG_LEVEL_WARNING;
void
bh_log_set_verbose_level(uint32 level)
{
log_verbose_level = level;
}
void
bh_log(LogLevel log_level, const char *file, int line, const char *fmt, ...)
{
va_list ap;
korp_tid self;
char buf[32] = { 0 };
uint64 usec;
uint32 t, h, m, s, mills;
if ((uint32)log_level > log_verbose_level)
return;
self = os_self_thread();
usec = os_time_get_boot_microsecond();
t = (uint32)(usec / 1000000) % (24 * 60 * 60);
h = t / (60 * 60);
t = t % (60 * 60);
m = t / 60;
s = t % 60;
mills = (uint32)(usec % 1000);
snprintf(buf, sizeof(buf), "%02u:%02u:%02u:%03u", h, m, s, mills);
os_printf("[%s - %X]: ", buf, (uint32)(uintptr_t)self);
if (file)
os_printf("%s, line %d, ", file, line);
va_start(ap, fmt);
os_vprintf(fmt, ap);
va_end(ap);
os_printf("\n");
}
static uint32 last_time_ms = 0;
static uint32 total_time_ms = 0;
void
bh_print_time(const char *prompt)
{
uint32 curr_time_ms;
if (log_verbose_level < 3)
return;
curr_time_ms = (uint32)bh_get_tick_ms();
if (last_time_ms == 0)
last_time_ms = curr_time_ms;
total_time_ms += curr_time_ms - last_time_ms;
os_printf("%-48s time of last stage: %u ms, total time: %u ms\n", prompt,
curr_time_ms - last_time_ms, total_time_ms);
last_time_ms = curr_time_ms;
}