summaryrefslogtreecommitdiff
path: root/src/daemon
diff options
context:
space:
mode:
authorSaya Sugiura <ssugiura@jp.adit-jv.com>2020-12-08 10:22:42 +0900
committerSaya Sugiura <39760799+ssugiura@users.noreply.github.com>2021-01-06 09:27:28 +0900
commit635a94e141d3c0d73130069e979f4bb63d464c1d (patch)
treea5da5318c3cf7ea2ed44c35893aa134ebe7f9a39 /src/daemon
parent4eb5be749b23081d2c92680d2a481e36f7ac0685 (diff)
downloadDLT-daemon-635a94e141d3c0d73130069e979f4bb63d464c1d.tar.gz
logstorage: Implement general config to maintain logstorage loglevel
Runtime log level setting from dlt-viewer or dlt-control doesn't work when logstorage is enabled. Adding MaintainLogstorageLogLevel=ON/OFF to [General] session of dlt_logstorage.conf to keep the current behaviour (=ON or 1 or not defined), or allow to change log level from dlt-viewer or dlt-control when the logstorage is enabled (=OFF or 0). Signed-off-by: KHANH LUONG HONG DUY <khanh.luonghongduy@vn.bosch.com> Signed-off-by: Bui Nguyen Quoc Thanh <thanh.buinguyenquoc@vn.bosch.com>
Diffstat (limited to 'src/daemon')
-rw-r--r--src/daemon/dlt-daemon.c3
-rw-r--r--src/daemon/dlt_daemon_client.c6
-rw-r--r--src/daemon/dlt_daemon_common.c7
-rw-r--r--src/daemon/dlt_daemon_common.h1
-rw-r--r--src/daemon/dlt_daemon_offline_logstorage.c10
5 files changed, 24 insertions, 3 deletions
diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
index 775d3a9..8e37c17 100644
--- a/src/daemon/dlt-daemon.c
+++ b/src/daemon/dlt-daemon.c
@@ -1239,6 +1239,9 @@ int dlt_daemon_local_init_p2(DltDaemon *daemon, DltDaemonLocal *daemon_local, in
dlt_get_version(daemon->ECUVersionString, DLT_DAEMON_TEXTBUFSIZE);
}
+ /* Set to allows to maintain logstorage loglevel as default */
+ daemon->maintain_logstorage_loglevel = DLT_MAINTAIN_LOGSTORAGE_LOGLEVEL_ON;
+
return 0;
}
diff --git a/src/daemon/dlt_daemon_client.c b/src/daemon/dlt_daemon_client.c
index 081f524..871ae30 100644
--- a/src/daemon/dlt_daemon_client.c
+++ b/src/daemon/dlt_daemon_client.c
@@ -2548,6 +2548,12 @@ void dlt_daemon_control_service_logstorage(int sock,
DLT_SERVICE_RESPONSE_OK,
verbose);
+ /* Update maintain logstorage loglevel if necessary */
+ if (daemon->storage_handle[device_index].maintain_logstorage_loglevel != DLT_MAINTAIN_LOGSTORAGE_LOGLEVEL_UNDEF)
+ {
+ daemon->maintain_logstorage_loglevel = daemon->storage_handle[device_index].maintain_logstorage_loglevel;
+ }
+
/* Check if log level of running application needs an update */
dlt_daemon_logstorage_update_application_loglevel(daemon,
daemon_local,
diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c
index cff1a9e..35ad9d6 100644
--- a/src/daemon/dlt_daemon_common.c
+++ b/src/daemon/dlt_daemon_common.c
@@ -1354,9 +1354,10 @@ int dlt_daemon_user_send_log_level(DltDaemon *daemon, DltDaemonContext *context,
return -1;
}
- if (context->storage_log_level != DLT_LOG_DEFAULT)
- usercontext.log_level = context->log_level >
- context->storage_log_level ? context->log_level : context->storage_log_level;
+ if ((context->storage_log_level != DLT_LOG_DEFAULT) &&
+ (daemon->maintain_logstorage_loglevel != DLT_MAINTAIN_LOGSTORAGE_LOGLEVEL_OFF))
+ usercontext.log_level = context->log_level >
+ context->storage_log_level ? context->log_level : context->storage_log_level;
else /* Storage log level is not updated (is DEFAULT) then no device is yet connected so ignore */
usercontext.log_level =
((context->log_level == DLT_LOG_DEFAULT) ? daemon->default_log_level : context->log_level);
diff --git a/src/daemon/dlt_daemon_common.h b/src/daemon/dlt_daemon_common.h
index 8586e1b..f650ce3 100644
--- a/src/daemon/dlt_daemon_common.h
+++ b/src/daemon/dlt_daemon_common.h
@@ -190,6 +190,7 @@ typedef struct
char *ECUVersionString; /**< Version string to send to client. Loaded from a file at startup. May be null. */
DltDaemonState state; /**< the current logging state of dlt daemon. */
DltLogStorage *storage_handle;
+ int maintain_logstorage_loglevel; /* Permission to maintain the logstorage loglevel*/
} DltDaemon;
/**
diff --git a/src/daemon/dlt_daemon_offline_logstorage.c b/src/daemon/dlt_daemon_offline_logstorage.c
index dc06dc8..5d21a76 100644
--- a/src/daemon/dlt_daemon_offline_logstorage.c
+++ b/src/daemon/dlt_daemon_offline_logstorage.c
@@ -1095,6 +1095,16 @@ int dlt_daemon_logstorage_setup_internal_storage(DltDaemon *daemon,
0,
verbose);
+ if (daemon->storage_handle[0].maintain_logstorage_loglevel !=
+ DLT_MAINTAIN_LOGSTORAGE_LOGLEVEL_UNDEF) {
+ daemon->maintain_logstorage_loglevel =
+ daemon->storage_handle[0].maintain_logstorage_loglevel;
+
+ dlt_vlog(LOG_DEBUG, "[%s] Startup with maintain loglevel: [%d]\n",
+ __func__,
+ daemon->storage_handle[0].maintain_logstorage_loglevel);
+ }
+
return ret;
}