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
|
rclcpp::Logger
|
||||||
get_logger() const;
|
get_logger() const;
|
||||||
|
|
||||||
|
RCLCPP_PUBLIC
|
||||||
|
virtual
|
||||||
|
const char *
|
||||||
|
get_logger_name() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RCLCPP_DISABLE_COPY(NodeLogging)
|
RCLCPP_DISABLE_COPY(NodeLogging)
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,13 @@ public:
|
||||||
virtual
|
virtual
|
||||||
rclcpp::Logger
|
rclcpp::Logger
|
||||||
get_logger() const = 0;
|
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
|
} // namespace node_interfaces
|
||||||
|
|
|
@ -19,8 +19,7 @@ using rclcpp::node_interfaces::NodeLogging;
|
||||||
NodeLogging::NodeLogging(rclcpp::node_interfaces::NodeBaseInterface * node_base)
|
NodeLogging::NodeLogging(rclcpp::node_interfaces::NodeBaseInterface * node_base)
|
||||||
: node_base_(node_base)
|
: node_base_(node_base)
|
||||||
{
|
{
|
||||||
// TODO(dhood): use the namespace (slashes converted to dots)
|
logger_ = rclcpp::get_logger(this->get_logger_name());
|
||||||
logger_ = rclcpp::get_logger(node_base_->get_name());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NodeLogging::~NodeLogging()
|
NodeLogging::~NodeLogging()
|
||||||
|
@ -32,3 +31,9 @@ NodeLogging::get_logger() const
|
||||||
{
|
{
|
||||||
return logger_;
|
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) {
|
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");
|
auto node = std::make_shared<rclcpp::Node>("my_node");
|
||||||
EXPECT_STREQ("my_node", node->get_logger().get_name());
|
EXPECT_STREQ("my_node", node->get_logger().get_name());
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
auto node = std::make_shared<rclcpp::Node>("my_node", "/ns");
|
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