OrientDB – Logging
OrientDB uses the Java Logging framework bundled with Java Virtual Machine. OrientDB”s default log format is managed by OLogFormatter class.
The following statement is the basic syntax of logging command.
<date> <level> <message> [<requester>]
Following are the details about the options in the above syntax.
<date> − It is the log date in the following format: yyyy-MM-dd HH:mm:ss:SSS.
<level> − It is the logging level as 5 chars output.
<message> − It is the text of log, it can be of any size.
[<class>] − It is the Java class that is logged (optional).
Supported levels are those contained in the JRE class java.util.logging.Level. They are −
- SEVERE (highest value)
- WARNING
- INFO
- CONFIG
- FINE
- FINER
- FINEST (lowest value)
By default, two loggers are installed −
-
Console, as the output of the shell/command prompt that starts the application/server. Can be changed by setting the variable ‘log.console.level’.
-
File, as the output to the log files. Can be changed by setting the ‘log.file.level’.
Configure Logging
The logging strategies and policies can be configured using a file following the Java.
syntax − Java Logging configuration.
Example
Copy the following content from orientdb-server-log.properties file and put it in the $ORIENTDB_HOME/config file.
# Specify the handlers to create in the root logger # (all loggers are children of the root logger) # The following creates two handlers handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler # Set the default logging level for the root logger .level = ALL # Set the default logging level for new ConsoleHandler instances java.util.logging.ConsoleHandler.level = INFO # Set the default formatter for new ConsoleHandler instances java.util.logging.ConsoleHandler.formatter = com.orientechnologies.common.log.OLogFormatter # Set the default logging level for new FileHandler instances java.util.logging.FileHandler.level = INFO # Naming style for the output file java.util.logging.FileHandler.pattern =../log/orient-server.log # Set the default formatter for new FileHandler instances java.util.logging.FileHandler.formatter = com.orientechnologies.common.log.OLogFormatter # Limiting size of output file in bytes: java.util.logging.FileHandler.limit = 10000000 # Number of output files to cycle through, by appending an # integer to the base file name: java.util.logging.FileHandler.count = 10
To tell the JVM where the properties file is placed, you need to set the “java.util.logging.config.file” system property to it. For example, use the following command −
$ java -Djava.util.logging.config.file=mylog.properties ...
Set the logging level
To change the logging level without modifying the logging configuration, just set the “log.console.level” and “log.file.level” system variables to the requested levels.
Logging at Startup
Following are the procedures to set logging at startup level in different ways.
In the Server Configuration
Open the file orientdb-server-config.xml and add or update these lines at the end of the file inside the <properties> section −
<entry value = "fine" name = "log.console.level" /> <entry value = "fine" name = "log.file.level" />
In Server.sh (or .bat) Script
Set the system property “log.console.level” and “log.file.level” to the levels you want using the -D parameter of java.
$ java -Dlog.console.level = FINE ...
Logging at Run-time
Following are the procedures to set logging at startup level in different ways.
By Using Java Code
The system variable can be set at startup using the System.setProperty() API. The following code snippet is the syntax to set logging level using Java code.
public void main(String[] args){ System.setProperty("log.console.level", "FINE"); ... }
On Remote Server
Execute a HTTP POST against the URL: /server/log.<type>/<level>, where −
- <type> can be “console” or “file”
- <level> is one of the supported levels
Example
The following example uses cURL to execute a HTTP POST command against OrientDB Server. Server”s “root” user and password were used, replace with your own password.
Enable the finest tracing level to console −
curl -u root:root -X POST http://localhost:2480/server/log.console/FINEST
Enable the finest tracing level to file −
curl -u root:root -X POST http://localhost:2480/server/log.file/FINEST