日志

OrientDB使用JVM中的Java日志框架。OrientDB的默认日志格式(通过OLogFormatter类管理)是:

<date> <level> <message> [<requester>]

说明:

  • <date> 日志的日期,格式: yyyy-MM-dd HH:mm:ss:SSS
  • <level> 日志的级别(看下面可能的级别see below for all the available levels),输出5个字符
  • <message> 日志的文本,大小任意
  • [<class>] 记录日志的类(可选)

支持的日志级别包含在JRE类 java.util.logging.Level:

  • SEVERE (最高)
  • WARNING
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST (最低)

默认安装带有2个logger:

  • console, 启动应用/服务器时,脚本/命令行的输出。 可以通过设置变量log.console.level修改。
  • file, 日志文件的输出。可以通过设置log.file.level修改。

配置文件

日志策略可以使用Java语法进行设置: Java Logging configuration.

orientdb-server-log.properties:

# 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

通过设置系统属性"java.util.logging.config.file"告诉JVM配置文件在哪。例如:

$ java -Djava.util.logging.config.file=mylog.properties ...

设置日志级别

修改日志级别,不需要修改日志配置,只需要设置系统变量"log.console.level""log.file.level"

启动时

服务器配置

打开文件orientdb-server-config.xml,在<properties>部分增加或者更新如下部分:

<entry value="fine" name="log.console.level" />
<entry value="fine" name="log.file.level" />

server.sh (.bat)脚本

使用java命令的-D参数设置系统属性"log.console.level""log.file.level"

例如:

$ java -Dlog.console.level=FINE ...

运行时

使用Java代码

启动的时候,通过代码System.setProperty() API设置。例如:

public void main(String[] args){
  System.setProperty("log.console.level", "FINE");
  ...
}

远程服务器

通过URL执行HTTP POST请求: /server/log.<type>/<level>. Where:

  • <type> 可以是"console"或者"file"
  • <level> 支持的日志级别
例子

使用cURL向OrientDB服务器,发送HTTP POST请求。需要传递服务器用户"root"及对应密码。

打开命令行Tracing级别:

curl -u root:root -X POST http://localhost:2480/server/log.console/FINEST

打开文件Tracing级别:

curl -u root:root -X POST http://localhost:2480/server/log.file/FINEST

安装日志格式

OrientDB服务器使用自己的LogFormatter。使用和你的应用一样的LogFormatter,需要调用:

OLogManager.installCustomFormatter();

LogFormatter通过服务器自动安装。设置orientdb.installCustomFormatterfalse可以禁止。 例如:

java ... -Dorientdb.installCustomFormatter=false=false ...