core: log the device type when it can be ambiguous

Use the nm_device_get_type_desc_for_log() helper function defined
earlier to show the device type when it can be ambiguous.

With this, the log becomes a bit more explicative when there are OVS
devices involved:

  <info> device (ovs-br)[Open vSwitch Bridge]: state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br)[Open vSwitch Port]: state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br)[Open vSwitch Port]: state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br)[Open vSwitch Port]: Activation: successful, device activated.
  <info> device (ovs-br)[Open vSwitch Bridge]: state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br)[Open vSwitch Bridge]: state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br)[Open vSwitch Bridge]: Activation: successful, device activated.
  <info> device (ovs-br)[Open vSwitch Interface]: state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
  <info> device (ovs-br)[Open vSwitch Interface]: state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br)[Open vSwitch Interface]: Activation: starting connection 'ovs-interface+' (d3d429b1-3193-4462-a17a-034255c43776)

instead of:

  <info> device (ovs-br): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br): Activation: successful, device activated.
  <info> device (ovs-br): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br): Activation: successful, device activated.
  <info> device (ovs-br): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
  <info> device (ovs-br): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed')
  <info> device (ovs-br): Activation: starting connection 'ovs-interface+' (d3d429b1-3193-4462-a17a-034255c43776)
This commit is contained in:
Beniamino Galvani 2023-05-22 17:56:22 +02:00
parent cb423ae7ac
commit 680c95ddd2
2 changed files with 28 additions and 23 deletions

View file

@ -19,27 +19,29 @@
#undef _NMLOG_ENABLED
#define _NMLOG_ENABLED(level, domain) (nm_logging_enabled((level), (domain)))
#define _NMLOG(level, domain, ...) \
G_STMT_START \
{ \
const NMLogLevel _level = (level); \
const NMLogDomain _domain = (domain); \
\
if (nm_logging_enabled(_level, _domain)) { \
typeof(*self) *const _self = (self); \
const char *const _ifname = _nm_device_get_iface(_NM_DEVICE_CAST(_self)); \
\
nm_log_obj(_level, \
_domain, \
_ifname, \
NULL, \
_self, \
"device", \
"%s%s%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
NM_PRINT_FMT_QUOTED(_ifname, "(", _ifname, ")", "[null]") \
_NM_UTILS_MACRO_REST(__VA_ARGS__)); \
} \
} \
#define _NMLOG(level, domain, ...) \
G_STMT_START \
{ \
const NMLogLevel _level = (level); \
const NMLogDomain _domain = (domain); \
\
if (nm_logging_enabled(_level, _domain)) { \
typeof(*self) *const _self = (self); \
const char *const _ifname = _nm_device_get_iface(_NM_DEVICE_CAST(_self)); \
const char *_type = nm_device_get_type_desc_for_log(_NM_DEVICE_CAST(_self)); \
\
nm_log_obj(_level, \
_domain, \
_ifname, \
NULL, \
_self, \
"device", \
"%s%s%s%s%s%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
NM_PRINT_FMT_QUOTED(_ifname, "(", _ifname, ")", "[null]"), \
NM_PRINT_FMT_QUOTED(_type, "[", _type, "]", "") \
_NM_UTILS_MACRO_REST(__VA_ARGS__)); \
} \
} \
G_STMT_END
#endif /* __NETWORKMANAGER_DEVICE_LOGGING_H__ */

View file

@ -41,16 +41,19 @@ _nm_dhcp_client_get_domain(NMDhcpClient *self)
if (nm_logging_enabled(_level, _NMLOG_DOMAIN)) { \
NMDhcpClient *_self = (NMDhcpClient *) (self); \
const char *__ifname = _self ? nm_dhcp_client_get_iface(_self) : NULL; \
const char *_type = nm_dhcp_client_get_iface_type_for_log(_self); \
const NMLogDomain _domain = _nm_dhcp_client_get_domain(_self); \
\
nm_log(_level, \
_domain, \
__ifname, \
NULL, \
"%s%s%s%s%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
"%s%s%s%s%s%s%s%s%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
_NMLOG_PREFIX_NAME, \
(_domain == LOGD_DHCP4 ? "4" : (_domain == LOGD_DHCP6 ? "6" : "")), \
NM_PRINT_FMT_QUOTED(__ifname, " (", __ifname, ")", "") \
(__ifname || _type) ? " " : "", \
NM_PRINT_FMT_QUOTED(__ifname, "(", __ifname, ")", ""), \
NM_PRINT_FMT_QUOTED(_type, "[", _type, "]", "") \
_NM_UTILS_MACRO_REST(__VA_ARGS__)); \
} \
} \