## repository: https://code.ros.org/svn/ros
<<PackageHeader(rosout)>>
<<TOC(4)>>

== Overview ==

rosout is the name of the console log reporting mechanism in ROS. It can be thought as comprising several components:
 
 * The [[#rosapi|`rosout`]] node for subscribing, logging, and republishing the messages.
 * The [[#rosout_topic|/rosout]] topic 
 * The [[#rosout_agg|/rosout_agg]] topic for subscribing to an aggregated feed
 * <<MsgLink(rosgraph_msgs/Log)>> message type, which defines standard fields as well as [[Verbosity Levels|verbosity levels]].
 * [[#client_apis|client APIs]] to facilitate easy use of the rosout reporting mechanism
 * GUI tools, like [[rqt_console]], for viewing the console log messages.

The `rosout` ''package'' only provides the `rosout` node.

<<Anchor(client_apis)>>
== Client APIs ==
Individual client APIs provide different ways of broadcasting to rosout:
 * [[roscpp]] uses [[rosconsole]], which is described in the [[roscpp/Overview/Logging|roscpp logging overview]].
 * [[rospy]]'s implementation is detailed in the [[rospy/Overview/Logging|rospy logging overview]].


== Verbosity Levels ==

Please see [[Verbosity Levels|Verbosity Level Best Practices]].

<<Anchor(rosapi)>>
== ROS API/Nodes ==

The `/rosout` node is part of [[roscore]] and has preferential startup order.

{{{
#!clearsilver CS/NodeAPI
name = rosout 
desc = rosout subscribes to the standard `/rosout` topic, records these messages in a textual log file, and rebroadcasts the messages on `/rosout_agg`. 
sub {
  0.name = /rosout
  0.type = rosgraph_msgs/Log
  0.desc = Standard ROS topic for publishing logging messages.
}
pub {
  0.name = /rosout_agg
  0.type = rosgraph_msgs/Log
  0.desc = Aggregated feed of messages published to `/rosout`.
}
}}}



<<Anchor(rosout_topic)>>
=== /rosout ===

ROS [[Client Libraries|client libraries]] are required to publish console logging messages to the `/rosout` topic as a standard interface.

<<Anchor(rosout_agg)>>
=== /rosout_agg ===

`/rosout_agg` is an aggregated feed for subscribing to console logging messages. This aggregated topic is offered as a performance improvement: instead of connecting to individual ROS nodes to receive their console messages, the aggregated message feed can instead be received directly from the `rosout` node.

=== rosout.log ===

`rosout` node by default logs all messages into `rosout.log` in the ROS log directory.

<<Version(Melodic)>>
This can be disabled by setting environment variable `ROSOUT_DISABLE_FILE_LOGGING` to `True` when launching [[roscore]].

By default, `rosout.log` prints `topic` name for every message.

<<Version(Melodic)>>
This behavior can be changed by setting boolean ROS parameter `/rosout/omit_topics` at any time.

== Roadmap/Stability ==

No future development on `rosout` is currently planned.

##Please create this page with template "PackageReviewIndex"
## CategoryPackage
## M3Package