【问题标题】:Neo4j: Does the Windows Service Wrapper actually log anything?Neo4j:Windows Service Wrapper 是否真的记录任何内容?
【发布时间】:2015-04-26 21:20:10
【问题描述】:

我正在尝试调试 Neo4j 社区服务器的服务包装器,无论我尝试过什么,都不会生成日志文件。 Windows-Wrapper 是否真的生成日志条目?该文档引用了 neo4j-wrapper,但没有引用 windows-wrapper。

操作系统:Windows 8.1 或 Windows Server 2012 R2

Neo4j:2.1.4 或 2.1.7 社区

我在所有可能的地方都将日志记录级别更改为 ALL,生成的唯一日志文件是 /data/neo4j.0.0.log,它似乎只包含有关 HTTP 端点和 /data/graph.db/messages.log 的信息没有对包装器的引用。我希望找到一个名为 /data/log/windows-wrapper.0.0.log 的日志文件

关于我做错了什么有什么想法吗?

windows-wrapper.logging.properties

# 配置 JDK 日志记录工具操作的属性文件。 # 系统将查找此配置文件,首先使用系统属性 # 在启动时指定: # # >java -Djava.util.logging.config.file=myLoggingConfigFilePath # # 如果未指定此属性,则从其检索配置文件 # 默认位置: # JDK_HOME/jre/lib/logging.properties # 全局日志记录属性。 # ------------------------------------------ # 启动时加载的处理程序集。 # 逗号分隔的类名列表。 # (?LogManager 文档说这里没有逗号,但 JDK 示例有逗号。) #handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler handlers=java.util.logging.FileHandler # 默认全局日志级别。 # Loggers 和 Handlers 可以覆盖这个级别 # SERVERE、INFO、FINE、FINEST .level=全部 # 记录器 # ------------------------------------------ # 记录器通常附加到包中。 # 这里指定了每个包的级别。 # 默认使用全局级别,所以这里指定的级别只是充当 # 覆盖。 org.neo4j.server.level=全部 # 处理程序 # ----------------------------------------- # --- 控制台处理程序 --- # 覆盖全局日志级别 java.util.logging.ConsoleHandler.level=ALL java.util.logging.ConsoleHandler.formatter=org.neo4j.server.logging.SimpleConsoleFormatter java.util.logging.ConsoleHandler.filter=org.neo4j.server.logging.NeoLogFilter # --- 文件处理程序 --- # 覆盖全局日志级别 java.util.logging.FileHandler.level=全部 # 输出文件的命名方式(输出文件放在目录下) # 由“user.home”系统属性定义): # "/" 本地路径名分隔符 # "%t" 系统临时目录 # "%h" "user.home" 系统属性的值 # "%g" 区分轮转日志的世代号 # "%u" 一个唯一的数字来解决冲突 # "%%" 转换为单个百分号 "%" java.util.logging.FileHandler.pattern=data/log/windows-wrapper.%u.%g.log # 指定 FileHandler 是否应该附加到任何现有文件上 #(默认为假): java.util.logging.FileHandler.append=true # 以字节为单位限制输出文件的大小(10M): java.util.logging.FileHandler.limit=10000000 # 要循环通过的输出文件数,通过将整数附加到基数 # 文件名: java.util.logging.FileHandler.count=10 # 要使用的字符集编码的名称(默认为默认值 #平台编码): #java.util.logging.FileHandler.encoding= # 输出样式(简单或 XML): java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

logging.properties

# 配置JDK运行的属性文件 # 日志记录工具。 # 系统会寻找这个配置文件,首先使用 # 启动时指定的系统属性: # # >java -Djava.util.logging.config.file=myLoggingConfigFilePath # # 如果没有指定这个属性,那么配置文件是 # 从其默认位置检索: # JDK_HOME/jre/lib/logging.properties # 全局日志记录属性。 # ------------------------------------------ # 启动时加载的处理程序集。 # 逗号分隔的类名列表。 # (?LogManager 文档说这里没有逗号,但 JDK 示例有逗号。) handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler #handlers=java.util.logging.ConsoleHandler # 默认全局日志级别。 # Loggers 和 Handlers 可以覆盖这个级别 # 严重、信息、精细、精细 .level=全部 # 记录器 # ------------------------------------------ # 记录器通常附加到包中。 # 这里指定了每个包的级别。 # 默认使用全局级别,所以这里指定的级别只是充当 # 覆盖。 org.neo4j.server.level=全部 # 处理程序 # ----------------------------------------- # --- 控制台处理程序 --- # 覆盖全局日志级别 java.util.logging.ConsoleHandler.level=ALL java.util.logging.ConsoleHandler.formatter=org.neo4j.server.logging.SimpleConsoleFormatter #java.util.logging.ConsoleHandler.filter=org.neo4j.server.logging.NeoLogFilter # --- 文件处理程序 --- # 覆盖全局日志级别 java.util.logging.FileHandler.level=全部 # 输出文件的命名方式(输出文件放在目录下) # 由“user.home”系统属性定义): # "/" 本地路径名分隔符 # "%t" 系统临时目录 # "%h" "user.home" 系统属性的值 # "%g" 区分轮转日志的世代号 # "%u" 一个唯一的数字来解决冲突 # "%%" 转换为单个百分号 "%" java.util.logging.FileHandler.pattern=data/log/neo4j.%u.%g.log # 指定 FileHandler 是否应该附加到任何现有文件上 #(默认为假): java.util.logging.FileHandler.append=true # 以字节为单位限制输出文件的大小(10M): java.util.logging.FileHandler.limit=10000000 # 要循环通过的输出文件数,通过将整数附加到基数 # 文件名: java.util.logging.FileHandler.count=10 # 要使用的字符集编码的名称(默认为默认值 #平台编码): #java.util.logging.FileHandler.encoding= # 输出样式(简单或 XML): java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

【问题讨论】:

    标签: windows logging neo4j wrapper


    【解决方案1】:

    由于我是最后一个对代码库的特定部分进行更改的人,因此我将尝试一个答案:是的,我们确实进行了日志记录。例如:https://github.com/neo4j/windows-wrapper/blob/master/src/main/java/org/neo4j/wrapper/NeoServiceWrapper.java#L49-60

    这似乎只是在您将其作为控制台应用程序启动的情况下。而且我不确定我们使用的库是否记录了它自己的。而且我必须承认,上次我看这个时并没有注意到日志记录是否确实有效。

    所以,目前我还没有给你任何具体的建议。我会确保在积压工作中做一个注释来解决这个问题。同时,如果您取得突破,请告诉我们!

    • 拉斯

    【讨论】:

    • 谢谢拉塞。自从你做出改变以来已经快 2 年了。我怀疑我可能会在不久的将来向那个 repo 发送一些 PR :-)
    • Lasse,我认为您没有使用 IntelliJ,而是尝试构建包装器。我很难让人工制品正确生成。我可以生成 JAR,但里面没有清单。如果你的项目文件还在,我可以得到一份吗?谢谢,格伦
    • @glennsarti 我已经推送了 pom 的更新并运行了它,它至少现在在我的机器上生成了一个清单:github.com/neo4j/windows-wrapper/commit/… - 它现在对你有用吗?我得到的清单在这里:gist.github.com/lassewesth/dad9a7e2c7a85746e115
    • 谢谢拉塞。我现在得到一个为我创建 Jar 的 Maven 包。不过我不得不有点厚脸皮。 ClasspathParserTests 未能解决看似简单的反斜杠与正斜杠问题。 shouldFindJarsAtMultipleLevels) 预期:是 "\"-classpath\" \"...r\663f4d5d-c1c3-4f70-8eed-3768b19b0d04/lib/aneo4jlibrary.jar;... 但是:是 "\"-classpath\" \" ...r\663f4d5d-c1c3-4f70-8eed-3768b19b0d04\lib\aneo4jlibrary.jar;... 在完成日志记录后,我将查看这些测试。再次感谢您的帮助
    • 刚刚提出了一个关于日志配置的 GitHub 问题。看起来它使用的是默认工作目录,而不是 java 命令行上指定的工作目录。 github.com/neo4j/neo4j/issues/4142
    猜你喜欢
    • 1970-01-01
    • 2012-07-01
    • 2013-11-24
    • 1970-01-01
    • 2018-09-03
    • 2021-02-04
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多