diff options
author | Saya Sugiura <ssugiura@jp.adit-jv.com> | 2020-12-08 10:22:42 +0900 |
---|---|---|
committer | Saya Sugiura <39760799+ssugiura@users.noreply.github.com> | 2021-01-06 09:27:28 +0900 |
commit | 635a94e141d3c0d73130069e979f4bb63d464c1d (patch) | |
tree | a5da5318c3cf7ea2ed44c35893aa134ebe7f9a39 /src/daemon | |
parent | 4eb5be749b23081d2c92680d2a481e36f7ac0685 (diff) | |
download | DLT-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.c | 3 | ||||
-rw-r--r-- | src/daemon/dlt_daemon_client.c | 6 | ||||
-rw-r--r-- | src/daemon/dlt_daemon_common.c | 7 | ||||
-rw-r--r-- | src/daemon/dlt_daemon_common.h | 1 | ||||
-rw-r--r-- | src/daemon/dlt_daemon_offline_logstorage.c | 10 |
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; } |