connman.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] service: Improve Logging and Event Visibility at the Info Level
@ 2023-12-21  7:33 Grant Erickson
  2023-12-21  7:33 ` [PATCH 1/2] service: Make log output of 'online_check_is_enabled_check' consistent Grant Erickson
  2023-12-21  7:33 ` [PATCH 2/2] service: Log service default, error, and state changes Grant Erickson
  0 siblings, 2 replies; 7+ messages in thread
From: Grant Erickson @ 2023-12-21  7:33 UTC (permalink / raw)
  To: connman

This improves service logging and event visibility at the info level
by making the following additions and changes:

  1. Make log output of online_check_is_enabled_check consistent,
     resulting in log entries similar to "Online check disabled;
     interface wlan0 [ wifi ] remains in ready state."

  2. Log service default, error, and state changes, resulting in log
     entries similar to:

       Interface eth0 [ ethernet ] is the default
       Interface wlan0 [ wifi ] error "online-check-failed"
       Interface wwan0 [ cellular ] state is online

Grant Erickson (2):
  service: Make log output of 'online_check_is_enabled_check'
    consistent.
  service: Log service default, error, and state changes.

 src/service.c | 69 +++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 61 insertions(+), 8 deletions(-)

-- 
2.42.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] service: Make log output of 'online_check_is_enabled_check' consistent.
  2023-12-21  7:33 [PATCH 0/2] service: Improve Logging and Event Visibility at the Info Level Grant Erickson
@ 2023-12-21  7:33 ` Grant Erickson
  2023-12-22 18:23   ` Denis Kenzior
  2023-12-21  7:33 ` [PATCH 2/2] service: Log service default, error, and state changes Grant Erickson
  1 sibling, 1 reply; 7+ messages in thread
From: Grant Erickson @ 2023-12-21  7:33 UTC (permalink / raw)
  To: connman

This makes the info-level log output of
'online_check_is_enabled_check' consistent with other messages using
the format of:

    ... [Ii]nterface <interface name> [ <service type> ] ...

to achieve:

    Online check disabled; interface wlan0 [ wifi ] remains in ready
    state.
---
 src/service.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/service.c b/src/service.c
index 99b322a91684..d3bd1fe83b37 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2195,9 +2195,17 @@ static void cancel_online_check(struct connman_service *service,
 static bool online_check_is_enabled_check(
 		const struct connman_service *service)
 {
+	g_autofree char *interface = NULL;
+
 	if (!__connman_service_is_online_check_enabled()) {
-		connman_info("Online check disabled. "
-			"Default service remains in READY state.");
+		interface = connman_service_get_interface(service);
+
+		connman_info("Online check disabled; "
+			"interface %s [ %s ] remains in %s state.",
+			interface,
+			__connman_service_type2string(service->type),
+			state2string(CONNMAN_SERVICE_STATE_READY));
+
 		return false;
 	}
 
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] service: Log service default, error, and state changes.
  2023-12-21  7:33 [PATCH 0/2] service: Improve Logging and Event Visibility at the Info Level Grant Erickson
  2023-12-21  7:33 ` [PATCH 1/2] service: Make log output of 'online_check_is_enabled_check' consistent Grant Erickson
@ 2023-12-21  7:33 ` Grant Erickson
  1 sibling, 0 replies; 7+ messages in thread
From: Grant Erickson @ 2023-12-21  7:33 UTC (permalink / raw)
  To: connman

Service default, error, and state changes are significant enough and
low-frequency enough to warrant logging at the info level. This adds
log entries for each in the form:

    ... [Ii]nterface <interface name> [ <service type> ] ...

to achieve:

    Interface eth0 [ ethernet ] is the default
    Interface eth0 [ ethernet ] error "online-check-failed"
    Interface eth0 [ ethernet ] state is online

log entries for default, error, and state changes, respectively.
---
 src/service.c | 57 +++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 51 insertions(+), 6 deletions(-)

diff --git a/src/service.c b/src/service.c
index d3bd1fe83b37..f3e022c91879 100644
--- a/src/service.c
+++ b/src/service.c
@@ -4187,6 +4187,17 @@ bool __connman_service_index_is_default(int index)
 	return __connman_service_get_index(service) == index;
 }
 
+static void service_log_default(const struct connman_service *service)
+{
+	g_autofree char *interface = NULL;
+
+	interface = connman_service_get_interface(service);
+
+	connman_info("Interface %s [ %s ] is the default",
+		interface,
+		__connman_service_type2string(service->type));
+}
+
 static void default_changed(const char *function)
 {
 	struct connman_service *service = connman_service_get_default();
@@ -4233,6 +4244,8 @@ static void default_changed(const char *function)
 	current_default = service;
 
 	if (service) {
+		service_log_default(service);
+
 		if (service->hostname &&
 				connman_setting_get_bool("AllowHostnameUpdates"))
 			__connman_utsname_set_hostname(service->hostname);
@@ -4257,10 +4270,24 @@ static void default_changed(const char *function)
 	__connman_notifier_default_changed(service);
 }
 
+static void service_log_state(const struct connman_service *service)
+{
+	g_autofree char *interface = NULL;
+
+	interface = connman_service_get_interface(service);
+
+	connman_info("Interface %s [ %s ] state is %s",
+		interface,
+		__connman_service_type2string(service->type),
+		state2string(service->state));
+}
+
 static void state_changed(struct connman_service *service)
 {
 	const char *str;
 
+	service_log_state(service);
+
 	__connman_notifier_service_state_changed(service, service->state);
 
 	str = state2string(service->state);
@@ -6450,6 +6477,19 @@ static DBusMessage *set_property(DBusConnection *conn,
 	return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
 }
 
+static void service_log_error(const struct connman_service *service,
+					enum connman_service_error error)
+{
+	g_autofree char *interface = NULL;
+
+	interface = connman_service_get_interface(service);
+
+	connman_warn("Interface %s [ %s ] error \"%s\"",
+		interface,
+		__connman_service_type2string(service->type),
+		error2string(error));
+}
+
 /**
  *  @brief
  *    Set the specified network service "Error" property.
@@ -6471,7 +6511,14 @@ static DBusMessage *set_property(DBusConnection *conn,
 static void set_error(struct connman_service *service,
 					enum connman_service_error error)
 {
-	const char *str;
+	const char *str = error2string(error);
+
+	if (!str)
+		str = "";
+
+	DBG("service %p (%s) error %d (%s)",
+		service, connman_service_get_identifier(service),
+		error, str);
 
 	if (service->error == error)
 		return;
@@ -6481,14 +6528,12 @@ static void set_error(struct connman_service *service,
 	if (!service->path)
 		return;
 
+	if (error != CONNMAN_SERVICE_ERROR_UNKNOWN)
+		service_log_error(service, error);
+
 	if (!allow_property_changed(service))
 		return;
 
-	str = error2string(service->error);
-
-	if (!str)
-		str = "";
-
 	connman_dbus_property_changed_basic(service->path,
 				CONNMAN_SERVICE_INTERFACE, "Error",
 				DBUS_TYPE_STRING, &str);
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] service: Make log output of 'online_check_is_enabled_check' consistent.
  2023-12-21  7:33 ` [PATCH 1/2] service: Make log output of 'online_check_is_enabled_check' consistent Grant Erickson
@ 2023-12-22 18:23   ` Denis Kenzior
  2023-12-22 18:31     ` Grant Erickson
  0 siblings, 1 reply; 7+ messages in thread
From: Denis Kenzior @ 2023-12-22 18:23 UTC (permalink / raw)
  To: Grant Erickson, connman

Hi Grant,

> @@ -2195,9 +2195,17 @@ static void cancel_online_check(struct connman_service *service,
>   static bool online_check_is_enabled_check(
>   		const struct connman_service *service)
>   {
> +	g_autofree char *interface = NULL;
> +
>   	if (!__connman_service_is_online_check_enabled()) {
> -		connman_info("Online check disabled. "
> -			"Default service remains in READY state.");
> +		interface = connman_service_get_interface(service);
> +
> +		connman_info("Online check disabled; "
> +			"interface %s [ %s ] remains in %s state.",
> +			interface,
> +			__connman_service_type2string(service->type),
> +			state2string(CONNMAN_SERVICE_STATE_READY));
> +

Does it make sense to add a specific method for such informational prints that 
will enforce the desired formatting pattern instead of relying on human 
intervention?

Regards,
-Denis

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] service: Make log output of 'online_check_is_enabled_check' consistent.
  2023-12-22 18:23   ` Denis Kenzior
@ 2023-12-22 18:31     ` Grant Erickson
  0 siblings, 0 replies; 7+ messages in thread
From: Grant Erickson @ 2023-12-22 18:31 UTC (permalink / raw)
  To: Denis Kenzior; +Cc: connman

On Dec 22, 2023, at 10:23 AM, Denis Kenzior <denkenz@gmail.com> wrote:
>> @@ -2195,9 +2195,17 @@ static void cancel_online_check(struct connman_service *service,
>>  static bool online_check_is_enabled_check(
>>  		const struct connman_service *service)
>>  {
>> +	g_autofree char *interface = NULL;
>> +
>>  	if (!__connman_service_is_online_check_enabled()) {
>> -		connman_info("Online check disabled. "
>> -			"Default service remains in READY state.");
>> +		interface = connman_service_get_interface(service);
>> +
>> +		connman_info("Online check disabled; "
>> +			"interface %s [ %s ] remains in %s state.",
>> +			interface,
>> +			__connman_service_type2string(service->type),
>> +			state2string(CONNMAN_SERVICE_STATE_READY));
>> +
> 
> Does it make sense to add a specific method for such informational prints that will enforce the desired formatting pattern instead of relying on human intervention?

Denis,

It’s a great point and one I’d considered. The scope of my changes seemed to small / narrow at that / this juncture. As we review logging across modules and the project at large and there’s an emergent pattern, I’m all for such a function / method.

Best,

Grant

-- 
Principal
Nuovations

gerickson@nuovations.com
http://www.nuovations.com/


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/2] service: Improve Logging and Event Visibility at the Info Level
  2023-12-23 18:58 [PATCH 0/2] service: Improve Logging and Event Visibility at the Info Level Grant Erickson
@ 2023-12-27 11:51 ` Marcel Holtmann
  0 siblings, 0 replies; 7+ messages in thread
From: Marcel Holtmann @ 2023-12-27 11:51 UTC (permalink / raw)
  To: Grant Erickson; +Cc: connman

Hi Grant,

> This improves service logging and event visibility at the info level
> by making the following additions and changes:
> 
>  1. Make log output of online_check_is_enabled_check consistent,
>     resulting in log entries similar to "Online check disabled;
>     interface wlan0 [ wifi ] remains in ready state."
> 
>  2. Log service default, error, and state changes, resulting in log
>     entries similar to:
> 
>       Interface eth0 [ ethernet ] is the default
>       Interface wlan0 [ wifi ] error "online-check-failed"
>       Interface wwan0 [ cellular ] state is online
> 
> Grant Erickson (2):
>  service: Make log output of 'online_check_is_enabled_check'
>    consistent.
>  service: Log service default, error, and state changes.
> 
> src/service.c | 69 +++++++++++++++++++++++++++++++++++++++++++++------
> 1 file changed, 61 insertions(+), 8 deletions(-)

both patches have been applied.

Regards

Marcel


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 0/2] service: Improve Logging and Event Visibility at the Info Level
@ 2023-12-23 18:58 Grant Erickson
  2023-12-27 11:51 ` Marcel Holtmann
  0 siblings, 1 reply; 7+ messages in thread
From: Grant Erickson @ 2023-12-23 18:58 UTC (permalink / raw)
  To: connman

This improves service logging and event visibility at the info level
by making the following additions and changes:

  1. Make log output of online_check_is_enabled_check consistent,
     resulting in log entries similar to "Online check disabled;
     interface wlan0 [ wifi ] remains in ready state."

  2. Log service default, error, and state changes, resulting in log
     entries similar to:

       Interface eth0 [ ethernet ] is the default
       Interface wlan0 [ wifi ] error "online-check-failed"
       Interface wwan0 [ cellular ] state is online

Grant Erickson (2):
  service: Make log output of 'online_check_is_enabled_check'
    consistent.
  service: Log service default, error, and state changes.

 src/service.c | 69 +++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 61 insertions(+), 8 deletions(-)

-- 
2.42.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-12-27 11:51 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-21  7:33 [PATCH 0/2] service: Improve Logging and Event Visibility at the Info Level Grant Erickson
2023-12-21  7:33 ` [PATCH 1/2] service: Make log output of 'online_check_is_enabled_check' consistent Grant Erickson
2023-12-22 18:23   ` Denis Kenzior
2023-12-22 18:31     ` Grant Erickson
2023-12-21  7:33 ` [PATCH 2/2] service: Log service default, error, and state changes Grant Erickson
2023-12-23 18:58 [PATCH 0/2] service: Improve Logging and Event Visibility at the Info Level Grant Erickson
2023-12-27 11:51 ` Marcel Holtmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).