Ana içeriğe geç

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}
  • 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öre KEYSYS 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ında LOGGER isminde bir type oluşturulmuştur.

Provider aynı zamanda kafkaya erişimi aktifleştirdiği için yml dosyası aşağıdaki sayfalarda verildiği gibi konfigüre edilmelidir.

Hvl-Kafka Altyapısı Kullanımı

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);