我使用rosjava编写了一个ROS节点。 当它启动时,有一些日志输出,例如:
Loading node class: MyApp.RosWrapper
Jun 18, 2015 3:12:39 PM org.ros.internal.node.client.Registrar <init>
INFO: MasterXmlRpcEndpoint URI: http://localhost:11311
Jun 18, 2015 3:12:39 PM org.ros.internal.node.client.Registrar onPublisherAdded
INFO: Registering publisher: Publisher<PublisherDefinition<PublisherIdentifier<NodeIdentifier</mynode, http://127.0.0.1:39009/>, TopicIdentifier</rosout>>, Topic<TopicIdentifier</rosout>, TopicDescription<rosgraph_msgs/Log, acffd30cd6b6de30f120938c17c593fb>>>>
我发现 rosjava 使用 org.apache.commons.logging.Log
方法(请参阅 https://github.com/rosjava/rosjava_core/blob/indigo/rosjava/src/main/java/org/ros/internal/node/client/Registrar.java#L54 )
要配置此功能,通常应将名为 commons-logging.properties
的文件放入类路径中。我尝试将包含此文件的文件夹添加到类路径中,但没有任何改变。
更新:
我发现rosjava默认使用Jdk14Logger
类。
如何将日志级别降低到例如警告
?我必须将相应的配置文件放在哪里?
最佳答案
免责声明:正如评论中所述,这对于rosjava
不起作用,因此不起作用强>回答问题。不过,我不会删除该帖子,以保留已经尝试过的记录。
永久设置
要永久修改日志级别,请创建一个文件并添加如下内容:
# Set the default ros output to warning and higher
log4j.logger.ros=WARN
# Override my package to output everything
log4j.logger.ros.my_package_name=DEBUG
要让 ROS 使用此文件,您必须定义环境 ROSCONSOLE_CONFIG_FILE
并将其设置为文件的路径。这可以通过将以下行添加到 ~/.bashrc
来完成:
export ROSCONSOLE_CONFIG_FILE=/path/to/config_file
另请参阅ROS wiki about rosconsole configuration .
临时设置
如果您只想临时更改当前正在运行的节点的日志级别,可以使用工具rqt_logger_level
。这将启动一个 GUI,您可以在其中更改每个正在运行的节点的日志级别。但是,这些设置不会被存储,因此在重新启动节点后它将丢失。
关于java - rosjava将日志级别设置为WARN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30916709/