@@ -575,8 +575,7 @@ struct Worker::Isolate::Impl {
575
575
progressCounter (impl.lockSuccessCount),
576
576
oldCurrentApi (currentApi),
577
577
limitEnforcer (isolate.getLimitEnforcer()),
578
- consoleMode (isolate.consoleMode),
579
- structuredLogging (isolate.structuredLogging),
578
+ loggingOptions (isolate.loggingOptions),
580
579
lock (isolate.api->lock (stackScope)) {
581
580
WarnAboutIsolateLockScope::maybeWarn ();
582
581
@@ -624,7 +623,7 @@ struct Worker::Isolate::Impl {
624
623
i.get ()->contextCreated (
625
624
v8_inspector::V8ContextInfo (context, 1 , jsg::toInspectorStringView (" Worker" )));
626
625
}
627
- Worker::setupContext (*lock, context, consoleMode, structuredLogging );
626
+ Worker::setupContext (*lock, context, loggingOptions );
628
627
}
629
628
630
629
void disposeContext (jsg::JsContext<api::ServiceWorkerGlobalScope> context) {
@@ -659,11 +658,9 @@ struct Worker::Isolate::Impl {
659
658
660
659
const IsolateLimitEnforcer& limitEnforcer; // only so we can call getIsolateStats()
661
660
662
- ConsoleMode consoleMode;
663
-
664
661
// When structuredLogging is YES AND consoleMode is STDOUT js logs will be emitted to STDOUT
665
- // as newline separated json objects.
666
- StructuredLogging structuredLogging ;
662
+ // as newline separated json objects
663
+ LoggingOptions loggingOptions ;
667
664
668
665
public:
669
666
kj::Own<jsg::Lock> lock;
@@ -1019,16 +1016,12 @@ Worker::Isolate::Isolate(kj::Own<Api> apiParam,
1019
1016
kj::StringPtr id,
1020
1017
kj::Own<IsolateLimitEnforcer> limitEnforcerParam,
1021
1018
InspectorPolicy inspectorPolicy,
1022
- ConsoleMode consoleMode,
1023
- StructuredLogging structuredLogging,
1024
- ProcessStdioPrefixed processStdioPrefixed)
1019
+ LoggingOptions loggingOptions)
1025
1020
: metrics(kj::mv(metricsParam)),
1026
1021
id(kj::str(id)),
1027
1022
limitEnforcer(kj::mv(limitEnforcerParam)),
1028
1023
api(kj::mv(apiParam)),
1029
- consoleMode(consoleMode),
1030
- structuredLogging(structuredLogging),
1031
- processStdioPrefixed(processStdioPrefixed),
1024
+ loggingOptions(loggingOptions),
1032
1025
featureFlagsForFl(makeCompatJson(decompileCompatibilityFlagsForFl(api->getFeatureFlags ()))),
1033
1026
impl(kj::heap<Impl>(*api, *metrics, *limitEnforcer, inspectorPolicy)),
1034
1027
weakIsolateRef(WeakIsolateRef::wrap(this )),
@@ -1512,10 +1505,8 @@ void setWebAssemblyModuleHasInstance(jsg::Lock& lock, v8::Local<v8::Context> con
1512
1505
module ->DefineOwnProperty (context, v8::Symbol::GetHasInstance (lock.v8Isolate ), function));
1513
1506
}
1514
1507
1515
- void Worker::setupContext (jsg::Lock& lock,
1516
- v8::Local<v8::Context> context,
1517
- Worker::ConsoleMode consoleMode,
1518
- StructuredLogging structuredLogging) {
1508
+ void Worker::setupContext (
1509
+ jsg::Lock& lock, v8::Local<v8::Context> context, const LoggingOptions& loggingOptions) {
1519
1510
// Set WebAssembly.Module @@HasInstance
1520
1511
setWebAssemblyModuleHasInstance (lock, context);
1521
1512
@@ -1531,9 +1522,9 @@ void Worker::setupContext(jsg::Lock& lock,
1531
1522
lock.v8Isolate , jsg::check (console->Get (context, methodStr)).As <v8::Function>());
1532
1523
1533
1524
auto f = lock.wrapSimpleFunction (context,
1534
- [consoleMode , level, structuredLogging , original = kj::mv (original)](
1525
+ [loggingOptions , level, original = kj::mv (original)](
1535
1526
jsg::Lock& js, const v8::FunctionCallbackInfo<v8::Value>& info) {
1536
- handleLog (js, consoleMode , level, structuredLogging , original, info);
1527
+ handleLog (js, loggingOptions , level, original, info);
1537
1528
});
1538
1529
jsg::check (console->Set (context, methodStr, f));
1539
1530
};
@@ -1848,9 +1839,8 @@ void Worker::processEntrypointClass(jsg::Lock& js,
1848
1839
}
1849
1840
1850
1841
void Worker::handleLog (jsg::Lock& js,
1851
- ConsoleMode consoleMode ,
1842
+ const LoggingOptions& loggingOptions ,
1852
1843
LogLevel level,
1853
- StructuredLogging structuredLogging,
1854
1844
const v8::Global<v8::Function>& original,
1855
1845
const v8::FunctionCallbackInfo<v8::Value>& info) {
1856
1846
// Call original V8 implementation so messages sent to connected inspector if any
@@ -1947,7 +1937,7 @@ void Worker::handleLog(jsg::Lock& js,
1947
1937
}
1948
1938
}
1949
1939
1950
- if (consoleMode == ConsoleMode::INSPECTOR_ONLY) {
1940
+ if (loggingOptions. consoleMode == LoggingOptions:: ConsoleMode::INSPECTOR_ONLY) {
1951
1941
// Lets us dump console.log()s to stdout when running test-runner with --verbose flag, to make
1952
1942
// it easier to debug tests. Note that when --verbose is not passed, KJ_LOG(INFO, ...) will
1953
1943
// not even evaluate its arguments, so `message()` will not be called at all.
@@ -1966,7 +1956,7 @@ void Worker::handleLog(jsg::Lock& js,
1966
1956
1967
1957
// Log warnings and errors to stderr
1968
1958
// Always log to stdout when structuredLogging is enabled.
1969
- auto useStderr = level >= LogLevel::WARN && !structuredLogging;
1959
+ auto useStderr = level >= LogLevel::WARN && !loggingOptions. structuredLogging ;
1970
1960
auto fd = useStderr ? stderr : stdout;
1971
1961
auto tty = useStderr ? STDERR_TTY : STDOUT_TTY;
1972
1962
auto colors =
@@ -1980,7 +1970,7 @@ void Worker::handleLog(jsg::Lock& js,
1980
1970
1981
1971
auto levelStr = logLevelToString (level);
1982
1972
args[length] = v8::Boolean::New (js.v8Isolate , colors);
1983
- args[length + 1 ] = v8::Boolean::New (js.v8Isolate , bool (structuredLogging));
1973
+ args[length + 1 ] = v8::Boolean::New (js.v8Isolate , bool (loggingOptions. structuredLogging ));
1984
1974
args[length + 2 ] = jsg::v8StrIntern (js.v8Isolate , levelStr);
1985
1975
auto formatted = js.toString (
1986
1976
jsg::check (formatLog->Call (context, js.v8Undefined (), length + 3 , args.data ())));
@@ -3254,7 +3244,7 @@ void Worker::Isolate::logWarning(kj::StringPtr description, Lock& lock) {
3254
3244
});
3255
3245
}
3256
3246
3257
- if (consoleMode == ConsoleMode::INSPECTOR_ONLY) {
3247
+ if (loggingOptions. consoleMode == LoggingOptions:: ConsoleMode::INSPECTOR_ONLY) {
3258
3248
// Run with --verbose to log JS exceptions to stderr. Useful when running tests.
3259
3249
KJ_LOG (INFO, " console warning" , description);
3260
3250
} else {
0 commit comments