Logging - Node.js SDK
On this page
You can set or change your app's log level to develop or debug your application. You might want to change the log level to log different amounts of data depending on the app's environment. You can specify different log levels or custom loggers.
Tip
See also:
This page shows how to set a Realm logger, which was added in Realm Node.js SDK v12.0.0. This supersedes setting the Sync client log level in earlier versions of the Realm Node.js SDK. For information on how to set the Sync client log level in an earlier version, refer to Set the Client Log Level - Node.js SDK.
Set or Change the Realm Log Level
You can set the level of detail reported by the Realm Node.js SDK. To configure the log level, pass Realm.setLogLevel() to a valid level string value:
"all"
"trace"
"debug"
"detail"
"info"
"warn"
"error"
"fatal"
"off"
Realm.setLogLevel("all");
You can set different log levels to increase or decrease verbosity at different points in your code. This behavior differs from the deprecated sync client log level, which had to be set before opening a synced realm and could not be changed.
// Set a default log level that's not too verbose Realm.setLogLevel("detail"); const realm = await Realm.open({ schema: [Turtle], }); // Later, change the log level to debug an issue when running specific code Realm.setLogLevel("trace"); realm.write(() => realm.create(Turtle, newTestObject()));
Customize the Logger
To set a custom logger, call setLogger().
This method recieves level
and message
arguments from the Realm logger.
You can use these arguments to define your own logging behavior.
let logs = []; Realm.setLogger((level, message) => { logs.push({ level, message }); });
type Log = { message: string; level: string; }; let logs: Log[] = []; Realm.setLogger((level, message) => { logs.push({ level, message }); });
This sets the logging behavior for all Realm logging in your application. If you do not provide a log level, the default value is "info".
Turn Off Logging
You can turn off logging by setting the log level to RealmLogLevel.off
:
Realm.setLogLevel("off");
Performance and console.log()
You should avoid using console.log()
in production because it will negatively
affect your app's performance. It can also be hard to account for all of the
method's quirks in Node.js.
For details about console.log()
behavior, check out the Node.js docs.