我使用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
类。如何将日志级别降低到例如
WARN
?我必须在哪里放置相应的配置文件? 最佳答案
免责声明:如评论中所述,这不适用于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将日志级别设置为警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30916709/