Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions build-scripts/config_common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,9 @@ endif ()
if (DEFINED WAMR_BH_VPRINTF)
add_definitions (-DBH_VPRINTF=${WAMR_BH_VPRINTF})
endif ()
if (DEFINED WAMR_BH_LOG)
add_definitions (-DBH_LOG=${WAMR_BH_LOG})
endif ()
if (WAMR_DISABLE_APP_ENTRY EQUAL 1)
message (" WAMR application entry functions excluded")
endif ()
Expand Down
2 changes: 2 additions & 0 deletions core/shared/utils/bh_log.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ bh_log_set_verbose_level(uint32 level)
log_verbose_level = level;
}

#ifndef BH_LOG
void
bh_log(LogLevel log_level, const char *file, int line, const char *fmt, ...)
{
Expand Down Expand Up @@ -56,6 +57,7 @@ bh_log(LogLevel log_level, const char *file, int line, const char *fmt, ...)

os_printf("\n");
}
#endif

static uint32 last_time_ms = 0;
static uint32 total_time_ms = 0;
Expand Down
6 changes: 6 additions & 0 deletions core/shared/utils/bh_log.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,14 @@ typedef enum {
void
bh_log_set_verbose_level(uint32 level);

#ifndef BH_LOG
void
bh_log(LogLevel log_level, const char *file, int line, const char *fmt, ...);
#else
void
BH_LOG(uint32 log_level, const char *file, int line, const char *fmt, ...);
#define bh_log BH_LOG
#endif

#ifdef BH_PLATFORM_NUTTX

Expand Down
12 changes: 11 additions & 1 deletion doc/build_wamr.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,17 @@ Currently we only profile the memory consumption of module, module_instance and
> }
> ```
>
> and then use `cmake -DWAMR_BH_VPRINTF=my_vprintf ..` to pass the callback function, or add `BH_VPRINTF=my_vprintf` macro for the compiler, e.g. add line `add_defintions(-DBH_VPRINTF=my_vprintf)` in CMakeListst.txt.
> and then use `cmake -DWAMR_BH_VPRINTF=my_vprintf ..` to pass the callback function, or add `BH_VPRINTF=my_vprintf` macro for the compiler, e.g. add line `add_defintions(-DBH_VPRINTF=my_vprintf)` in CMakeListst.txt. See [basic sample](../samples/basic/src/main.c) for a usage example.

#### **WAMR_BH_LOG**=<log_callback>, default to disable if not set
> Note: if the log_callback function is provided by the developer, WAMR logs are redirected to such callback. For example:
> ```C
> void my_log(uint32 log_level, const char *file, int line, const char *fmt, ...)
> {
> /* Usage of custom logger */
> }
> ```
> See [basic sample](../samples/basic/src/main.c) for a usage example.

#### **Enable reference types feature**
- **WAMR_BUILD_REF_TYPES**=1/0, default to disable if not set
Expand Down
2 changes: 1 addition & 1 deletion samples/basic/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ echo "#####################build basic project"
cd ${CURR_DIR}
mkdir -p cmake_build
cd cmake_build
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake .. -DCMAKE_BUILD_TYPE=Debug -DWAMR_BH_VPRINTF=my_vprintf -DWAMR_BH_LOG=my_log
make -j ${nproc}
if [ $? != 0 ];then
echo "BUILD_FAIL basic exit as $?\n"
Expand Down
28 changes: 27 additions & 1 deletion samples/basic/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,30 @@ get_pow(int x, int y);
int32_t
calculate_native(int32_t n, int32_t func1, int32_t func2);

void
my_log(uint32 log_level, const char *file, int line, const char *fmt, ...)
{
char buf[200];
snprintf(buf, 200,
log_level == WASM_LOG_LEVEL_VERBOSE ? "[WamrLogger - VERBOSE] %s"
: "[WamrLogger] %s",
fmt);

va_list ap;
va_start(ap, fmt);
vprintf(buf, ap);
va_end(ap);
}

int
my_vprintf(const char *format, va_list ap)
{
/* Print in blue */
char buf[200];
snprintf(buf, 200, "\x1b[34m%s\x1b[0m", format);
return vprintf(buf, ap);
}

void
print_usage(void)
{
Expand Down Expand Up @@ -95,6 +119,7 @@ main(int argc, char *argv_main[])
printf("Init runtime environment failed.\n");
return -1;
}
wasm_runtime_set_log_level(WASM_LOG_LEVEL_VERBOSE);

buffer = bh_read_file_to_buffer(wasm_path, &buf_size);

Expand All @@ -103,7 +128,8 @@ main(int argc, char *argv_main[])
goto fail;
}

module = wasm_runtime_load(buffer, buf_size, error_buf, sizeof(error_buf));
module = wasm_runtime_load((uint8 *)buffer, buf_size, error_buf,
sizeof(error_buf));
if (!module) {
printf("Load wasm module failed. error: %s\n", error_buf);
goto fail;
Expand Down