java - rosjava将日志级别设置为WARN

标签 java ros

我使用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/

相关文章:

python - 将 tensorflow.contrib 与 cv_bridge 一起使用会导致 tcmalloc 错误

c++ - 使用 OpenCV 2.4.9 构建 ROS 包时出现问题

python - 如何在按下 Ctrl+c 时以干净的方式杀死 python 程序(包括 ROS 和扭曲协议(protocol))?

java - 通过 javax.mail API 发送电子邮件。消息的某些 html 属性被忽略

java - BufferedRead 在 Linux 和 Windows 上以不同方式读取二进制文件

java - 在 Java 中将用户定义的对象添加到 ArrayList

java - Java 中的静态和动态绑定(bind)

c++ - 调用其他文件 undefined reference 的 header 中的函数

angular - 从可观察订阅传递变量 Angular 6

java - 对象化/AppEngine/Java : Many-many relationship