是否有可能从环境/系统属性替换日志文件名是OrientDB?

时间:2017-01-27 06:02:12

标签: java logging orientdb

OrientDB使用Java Logging Framework处理日志。使用orientdb-server-log.properties配置日志。

输出文件路径指定为

java.util.logging.FileHandler.pattern=../log/orient-server.log

是否可以用环境/系统属性替换java.util.logging.FileHandler.pattern的值?

1 个答案:

答案 0 :(得分:0)

1)如果你在你的jvm中运行一个嵌入式服务器(例如:http://orientdb.com/docs/2.1/Embedded-Server.html),你用-Djava.util.logging.config.file = $ ORIENTDB_HOME / config / orientdb-server-启动java进程log.properties,你可以使用

String pattern = LogManager.getLogManager().
                 getProperty("java.util.logging.FileHandler.pattern" );
System.out.println("java.util.logging.FileHandler.pattern  : "+pattern);

得到:

2017-01-27 16:34:28:291 INFO  OrientDB Server is active v2.2.15. [OServer]
java.util.logging.FileHandler.pattern  : ../log/orient-server.log

2)在脚本server.sh中有

ORIENTDB_LOG_CONF=$ORIENTDB_HOME/config/orientdb-server-log.properties
-Djava.util.logging.config.file="$ORIENTDB_LOG_CONF"

所以你可以grep value

ORIENTDB_LOG_FILEHANDLER=$( printf "%s" \`grep "java.util.logging.FileHandler.pattern" $ORIENTDB_LOG_CONF | cut -f2 -d'=' | tr -d '\r'\` )".0"  

提取文件处理程序模式" ../ log / orient-server.log.0"

3)如果使用Oracle JDK运行orientdb服务器,您可以使用jps获取pid,然后使用jinfo pid。例如:

$ jps -l | grep OServer
74481 com.orientechnologies.orient.server.OServerMain
$ jinfo -sysprops 74481 | grep java.util.logging.config.file
java.util.logging.config.file = /mypath/orientdb-enterprise-2.2.15/config/orientdb-server-log.properties

或者将新工具jcmd与主类和可用命令一起使用。例如:

$ jcmd com.orientechnologies.orient.server.OServerMain help
...
VM.system_properties
...
$ jcmd com.orientechnologies.orient.server.OServerMain VM.system_properties | grep java.util.logging.config.file
java.util.logging.config.file=/mypath/orientdb-enterprise-2.2.15/config/orientdb-server-log.properties

然后你可以grep属性文件来提取文件处理程序模式