|
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