0
$\begingroup$

I ran the following and got an error with something that previously ran well (I was just missing the entire world though and not the robot). Something I did in the middle could be the problem.

$ roslaunch my_robot world.launch 
RLException: [world.launch] is neither a launch file in package [my_robot] nor is [my_robot] a launch file name
The traceback for the exception was written to the log file

However, the main question for now is what is this special log file? The error mentions it like there's only one and it is evident where it is. This question has a similar error but no answer. My question for now though, is where can I find this log file? And what what does RL stand for in RLException?

$\endgroup$
  • $\begingroup$ You're having a problem with roslaunch, so I would guess RL is short for the same. $\endgroup$ – Chuck Apr 30 at 14:41
3
$\begingroup$

tl;dr -

If you are using roslaunch, you can use the roslaunch-logs command to tell you the location of the log directory.


From the ROS wiki:

  1. Output

There are four potential places a log message may end up, depending on the verbosity level:

stdout

DEBUG and INFO messages arrive on stdout if they are enabled. Note that this may not be sent to the screen depending on the value of the roslaunch/XML/node output parameter.

stderr

WARN, ERROR and FATAL messages arrive on stderr if they are enabled.

Node log file

Everything enabled goes into the log file. Your node's log file will be in ~/.ros/log unless you override it with the ROS_HOME or ROS_LOG_DIR environment variables. If you are using roslaunch, you can use the roslaunch-logs command to tell you the location of the log directory.

/rosout topic

Everything enabled is sent to the /rosout topic. Note that until the node is fully started, messages will not be sent, so you may not see initial messages.

Here is a table summarizing the above:

$$\begin{matrix} \text{ } & \text{Debug} & \text{Info} & \text{Warn} & \text{Error} & \text{Fatal} \\ \text{stdout} & \text{X} & \text{X} & \text{ } & \text{ } & \text{ } \\ \text{stderr} & \text{ } & \text{ } & \text{X} & \text{X} & \text{X} \\ \text{log file} & \text{X} & \text{X} & \text{X} & \text{X} & \text{X} \\ \text{/rosout} & \text{X} & \text{X} & \text{X} & \text{X} & \text{X} \end{matrix}$$ Also note that this table is different for rospy.

(emphasis added)

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Just curious as to why rospy is different? Does python have different logging philosophy? $\endgroup$ – heretoinfinity Apr 30 at 15:29
  • 1
    $\begingroup$ @heretoinfinity - Probably not that it has a different philosophy, but I would guess Python dumps its own log files to its own location, and/or writes logs with verbosity settings set within the environment. $\endgroup$ – Chuck Apr 30 at 16:13
  • 1
    $\begingroup$ Thanks. I found out about unknown logs and rosclean check command. $\endgroup$ – heretoinfinity May 1 at 0:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.