|
11 | 11 | #include "user_config.hpp" |
12 | 12 | #include "user_groups_config.hpp" |
13 | 13 |
|
14 | | -/** |
15 | | - * Note: After days of trying to get the libsession-util logger to play nice with console.log, |
16 | | - * I've decided to just not log anything from libsession for now. |
17 | | - * Note for my future self: |
18 | | - * - we need a thread-safe function to be called in the add_logger callback here because if |
19 | | - * the `env` is not valid it will crash the whole app without an error at all, |
20 | | - * - macos crashes a lot more easily than linux, so better to debug this issue on macOS, |
21 | | - * - using the thread-safe function below is working for linux, and kind of working for macOS, but |
22 | | - * it also prevents the normal logging from being written to the inspector (macOS only) |
23 | | - * |
24 | | - * For all those reasons, and because we want a point release soon, there is no logging from |
25 | | - * libsession-util for now. |
26 | | - */ |
27 | | -// Napi::ThreadSafeFunction tsfn; |
28 | | -// tsfn = Napi::ThreadSafeFunction::New( |
29 | | -// env, |
30 | | -// Napi::Function::New(env, [](const Napi::CallbackInfo& info) {}), |
31 | | -// "LoggerCallback", |
32 | | -// 0, |
33 | | -// 1); |
34 | | - |
35 | | -// session::add_logger([](std::string_view msg) { |
36 | | -// tsfn.BlockingCall( |
37 | | -// new std::string(msg), |
38 | | -// [](Napi::Env env, Napi::Function jsCallback, std::string* msg) { |
39 | | -// Napi::HandleScope scope(env); |
40 | | -// Napi::Function consoleLog = env.Global() |
41 | | -// .Get("console") |
42 | | -// .As<Napi::Object>() |
43 | | -// .Get("log") |
44 | | -// .As<Napi::Function>(); |
45 | | -// Napi::String jsStr = Napi::String::New(env, "libsession-util: " + *msg); |
46 | | -// consoleLog.Call({jsStr}); |
47 | | -// delete msg; |
48 | | -// }); |
49 | | -// }); |
50 | | -// oxen::log::set_level_default(oxen::log::Level::info); |
| 14 | +Napi::ThreadSafeFunction tsfn; |
51 | 15 |
|
52 | 16 | Napi::Object InitAll(Napi::Env env, Napi::Object exports) { |
53 | 17 | using namespace session::nodeapi; |
54 | 18 |
|
| 19 | + tsfn = Napi::ThreadSafeFunction::New( |
| 20 | + env, |
| 21 | + Napi::Function::New(env, [](const Napi::CallbackInfo& info) {}), |
| 22 | + "LoggerCallback", |
| 23 | + 0, |
| 24 | + 1); |
| 25 | + |
| 26 | + session::add_logger([](std::string_view msg) { |
| 27 | + tsfn.BlockingCall( |
| 28 | + new std::string(msg), |
| 29 | + [](Napi::Env env, Napi::Function jsCallback, std::string* msg) { |
| 30 | + Napi::HandleScope scope(env); |
| 31 | + Napi::Function consoleLog = env.Global() |
| 32 | + .Get("console") |
| 33 | + .As<Napi::Object>() |
| 34 | + .Get("log") |
| 35 | + .As<Napi::Function>(); |
| 36 | + Napi::String jsStr = Napi::String::New(env, "libsession-util: " + *msg); |
| 37 | + consoleLog.Call({jsStr}); |
| 38 | + delete msg; |
| 39 | + }); |
| 40 | + }); |
| 41 | + oxen::log::set_level_default(oxen::log::Level::info); |
| 42 | + |
55 | 43 | ConstantsWrapper::Init(env, exports); |
56 | 44 |
|
57 | 45 | // Group wrappers init |
|
0 commit comments