Get node's logger name from rcl (#433)
* Get logger name from rcl [direct] * Get logger name from rcl [indirect] * Update tests * fixup on variable usage * Move get_logger_name to NodeLogging interface
This commit is contained in:
parent
3786c91deb
commit
787de6ebf1
4 changed files with 32 additions and 4 deletions
|
@ -46,6 +46,11 @@ public:
|
|||
rclcpp::Logger
|
||||
get_logger() const;
|
||||
|
||||
RCLCPP_PUBLIC
|
||||
virtual
|
||||
const char *
|
||||
get_logger_name() const;
|
||||
|
||||
private:
|
||||
RCLCPP_DISABLE_COPY(NodeLogging)
|
||||
|
||||
|
|
|
@ -39,6 +39,13 @@ public:
|
|||
virtual
|
||||
rclcpp::Logger
|
||||
get_logger() const = 0;
|
||||
|
||||
/// Return the logger name associated with the node.
|
||||
/** \return The logger name associated with the node. */
|
||||
RCLCPP_PUBLIC
|
||||
virtual
|
||||
const char *
|
||||
get_logger_name() const = 0;
|
||||
};
|
||||
|
||||
} // namespace node_interfaces
|
||||
|
|
|
@ -19,8 +19,7 @@ using rclcpp::node_interfaces::NodeLogging;
|
|||
NodeLogging::NodeLogging(rclcpp::node_interfaces::NodeBaseInterface * node_base)
|
||||
: node_base_(node_base)
|
||||
{
|
||||
// TODO(dhood): use the namespace (slashes converted to dots)
|
||||
logger_ = rclcpp::get_logger(node_base_->get_name());
|
||||
logger_ = rclcpp::get_logger(this->get_logger_name());
|
||||
}
|
||||
|
||||
NodeLogging::~NodeLogging()
|
||||
|
@ -32,3 +31,9 @@ NodeLogging::get_logger() const
|
|||
{
|
||||
return logger_;
|
||||
}
|
||||
|
||||
const char *
|
||||
NodeLogging::get_logger_name() const
|
||||
{
|
||||
return rcl_node_get_logger_name(node_base_->get_rcl_node_handle());
|
||||
}
|
||||
|
|
|
@ -75,14 +75,25 @@ TEST_F(TestNode, get_name_and_namespace) {
|
|||
}
|
||||
|
||||
TEST_F(TestNode, get_logger) {
|
||||
// Currently the namespace is not taken into account with the node logger name
|
||||
{
|
||||
auto node = std::make_shared<rclcpp::Node>("my_node");
|
||||
EXPECT_STREQ("my_node", node->get_logger().get_name());
|
||||
}
|
||||
{
|
||||
auto node = std::make_shared<rclcpp::Node>("my_node", "/ns");
|
||||
EXPECT_STREQ("my_node", node->get_logger().get_name());
|
||||
EXPECT_STREQ("ns.my_node", node->get_logger().get_name());
|
||||
}
|
||||
{
|
||||
auto node = std::make_shared<rclcpp::Node>("my_node", "ns");
|
||||
EXPECT_STREQ("ns.my_node", node->get_logger().get_name());
|
||||
}
|
||||
{
|
||||
auto node = std::make_shared<rclcpp::Node>("my_node", "/my/ns");
|
||||
EXPECT_STREQ("my.ns.my_node", node->get_logger().get_name());
|
||||
}
|
||||
{
|
||||
auto node = std::make_shared<rclcpp::Node>("my_node", "my/ns");
|
||||
EXPECT_STREQ("my.ns.my_node", node->get_logger().get_name());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue