@@ -954,8 +954,8 @@ void LoggerCallback(const FunctionCallbackInfo<Value>& args) {
954954 CHECK (args[1 ]->IsString ());
955955
956956 if (custom_logger) {
957- int32_t func_type = args[0 ]->ToInteger (env-> isolate ())-> Int32Value ();
958- node:: Utf8Value message (env->isolate (), args[1 ]);
957+ int32_t func_type = args[0 ]->IntegerValue ();
958+ Utf8Value message (env->isolate (), args[1 ]. As <String>() );
959959 if (custom_logger (static_cast <logger_func_type>(func_type), *message))
960960 args.GetReturnValue ().Set (True (env->isolate ()));
961961 }
@@ -2890,7 +2890,22 @@ void SetupProcessObject(Environment* env,
28902890 env->SetMethod (process, " _setupPromises" , SetupPromises);
28912891 env->SetMethod (process, " _setupDomainUse" , SetupDomainUse);
28922892
2893- env->SetMethod (process, " _logger" , LoggerCallback);
2893+ // Readonly _logger method
2894+ v8::Local<v8::Function> logger =
2895+ env->NewFunctionTemplate (LoggerCallback)->GetFunction ();
2896+ READONLY_PROPERTY (process, " _logger" , logger);
2897+ logger->SetName (v8::String::NewFromUtf8 (env->isolate (), " _logger" ));
2898+ // Logger function type constants
2899+ READONLY_PROPERTY (logger, " LOGGER_FUNC_TYPE_LOG" ,
2900+ Integer::New (env->isolate (), LOGGER_FUNC_TYPE_LOG));
2901+ READONLY_PROPERTY (logger, " LOGGER_FUNC_TYPE_INFO" ,
2902+ Integer::New (env->isolate (), LOGGER_FUNC_TYPE_INFO));
2903+ READONLY_PROPERTY (logger, " LOGGER_FUNC_TYPE_WARN" ,
2904+ Integer::New (env->isolate (), LOGGER_FUNC_TYPE_WARN));
2905+ READONLY_PROPERTY (logger, " LOGGER_FUNC_TYPE_ERROR" ,
2906+ Integer::New (env->isolate (), LOGGER_FUNC_TYPE_ERROR));
2907+ READONLY_PROPERTY (logger, " LOGGER_FUNC_TYPE_DIR" ,
2908+ Integer::New (env->isolate (), LOGGER_FUNC_TYPE_DIR));
28942909
28952910 // pre-set _events object for faster emit checks
28962911 process->Set (env->events_string (), Object::New (env->isolate ()));
0 commit comments