3.4.4. Log Producer Configurable Log Provider#
Configurable log provider paketi; olay loglarının(event log), çalışan sistemlerde gerçek zamanlı olarak açılıp kapatılabilmesine olanak sağlamaktadır. Böylece sisteme restart atılmadan logların yönetilebilmesi sağlanmış olur.
Bağımlılıklar#
Gradle Dependencies
api (
[group: 'tr.com.havelsan.framework.logger', name: 'hvl-logger-producer-configurable-log-provider'],
)
Not: Eğer MQ Provider
veya JPA Data Provider
paketlerinden biri kullanılıyorsa, bu bağımlılığı eklemeye gerek yoktur.
Log Producer Configurable Log Provider#
Provider kullanımı için Application Yml'a eklenmesi gerekenler#
hvl:
logger:
producer:
configurable-log:
enabled: ${LOGGER_PRODUCER_C_LOG_ENABLED:false}
setting-event-topic-name: ${LOGGER_PRODUCER_C_LOG_SETTING_EVENT_TOPIC_NAME:javalt-system-setting-operation}
cache:
module-names: ${LOGGER_PRODUCER_C_LOG_CACHE_MODULE_NAMES:}
type: ${LOGGER_PRODUCER_C_LOG_CACHE_TYPE:LOGGER}
ignored-event-types: ${LOGGER_PRODUCER_C_LOG_IGNORED_EVENT_TYPES:}
hvl.logger.producer.configurable-log.enabled
: Ayarlanabilir logların devrede olma durumudur.hvl.logger.producer.configurable-log.setting-event-topic-name
: Setting uygulaması üzerinde logların durumu ile ilgili değişiklik yapıldığı zaman kafka üzerinden mesaj yolladığı topic bilgisidir. Bu topic bilgisi setting uygulaması ile uyuşmadığı durumda sistem düzgün çalışmayacaktır.hvl.logger.producer.configurable-log.cache.module-names
: Ayarlanabilir log yeteneğini kullanan uygulamalar sadece kendi ayarlarını alıp cacheleyebilmesi için setting üzerindeki verilere göre module name vermelidir. Örneğin Keysis uygulaması mevcut durumdaki ilklendirmelere göreKEYSYS
olarak bu değeri ayarlamaktadır. Buraya birden fazla modül ismi verilebilmektedir.hvl.logger.producer.configurable-log.cache.type
: Ayarlanabilir log yeteneğini kullanan uygulamalar sadece kendi ayarlarını alıp cacheleyebilmesi için setting üzerindeki verilere göre type vermelidir. Örneğin Keysis uygulaması için setting uygulamasındaLOGGER
isminde bir type oluşturulmuştur.hvl.logger.producer.configurable-log.ignored-event-types
: Ayarlanabilir log yeteneğini kullanan uygulamalar istisnai durumlar için verilecek event type'a göre configurable yeteneğini pas geçebilirler. Örnek durum: Uygulama ilk çalıştırıldığında henüz log cacheleri dolmamış olacaktır. İlk log attığı yerde logger producer uygulamasına istek atar ve cache'i doldurur ancak bu durumda eğer token yoksa 401 Unauthorized hatası gelecektir. Böyle durumlar için spesifik event type bilgileri bu alana liste olarak eklenebilir.
Provider aynı zamanda kafkaya erişimi aktifleştirdiği için yml dosyası aşağıdaki sayfalarda verildiği gibi konfigüre edilmelidir.
Log Producer Configurable Log Provider Kullanımı#
Ayarlanabilir logları devreye sokmak için sadece enabled
değerini true yapmak yeterlidir.
Ancak sistemin düzgün çalışması için setting uygulamasında veri ilklendirmesi yapılması gerekmektedir. Loglar basılırken bir eventType
değeri ile basılmaktadır. Ayarlanabilir logları ilklendirirken bu eventType
değerleri ile setting uygulamasına veri basılmalıdır. Böylece setting uygulaması ekranlarında bu değerler görünür hale gelecektir ve ekran üzerinden açma kapama yapılabilecektir. Setting Veri İlklendirme sayfasından detaylı bilgiye ulaşılabilir.
Not: İlklendirme yapılırken code
alanına eventType
değeri ve boolean_value
alanına da log'un aktiflik durumu yazılmalıdır.
Örnek Setting İlklendirme SQL:
INSERT INTO setting.sys_setting_module (id, created_by, created_at, updated_at, updated_by, uuid, obj_version, tenant, name, module_order) VALUES (1, 'unknown', '2023-03-29 00:00:00.000000', '2023-03-29 00:00:00.000000', 'unknown', 'SETTING_MODULE_NAME_UUID_00000000001', 0, null, 'KEYSYS', 1);
INSERT INTO setting.sys_setting_type (id, created_by, created_at, updated_at, updated_by, uuid, obj_version, tenant, module_id, name, type_order) VALUES (41, 'system', '2023-07-14 14:38:55.913707', '2023-07-14 14:38:55.913707', 'system', 'SETTING_TYPE_UUID_000000000000000004', 0, null, 1, 'LOGGER', 4);
INSERT INTO setting.sys_setting (id, created_by, created_at, updated_at, updated_by, uuid, obj_version, tenant, boolean_value, code, description, field_type, max_limit, min_limit, number_value, string_value, type_id) VALUES (461, 'system', '2023-07-14 14:38:55.924596', '2023-07-14 14:38:55.924596', 'system', 'SETTING_UUID_00000000000000000000048', 0, null, 1, 'oauth.session.begin.event', 'Session begin event log', 2, null, null, 1, '', 41);