我使用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
?我在哪里放置相应的配置文件?
答案 0 :(得分:0)
免责声明 :正如评论中所述, 适用于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,您可以在其中更改每个运行节点的日志级别。但是,不会存储这些设置,因此在重新启动节点后它将丢失。
答案 1 :(得分:0)
要管理任何ROSJava项目的日志级别,请创建如下文件:
log-config.properties
# 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
# log level for the "com.example" package
org.ros.logging.level=ALL
# Set the default logging level
java.util.logging.ConsoleHandler.level=ALL
java.util.logging.FileHandler.level=ALL
# Set the default formatter
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
# Specify the location and name of the log file
java.util.logging.FileHandler.pattern=/home/robot/test.log
以后,在执行中加载配置:
java -Djava.util.logging.config.file=/home/robot/log-config.properties -jar rosjava-helloworld-0.1.0-SNAPSHOT-all.jar
Juan Antonio