İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python - Syslog Loglama Alt Yapısı

Memotaz7 - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2016
Nereden:
Sólheimar
Mesajlar:
547
Konular:
43
Teşekkür (Etti):
1
Teşekkür (Aldı):
197
Ticaret:
(0) %
04-08-2016 15:48
#1
Post
Python - Syslog Loglama Alt Yapısı


Özellikle komut satırından çalıştırılan uygulamalar için gerçekleştirilen detaylarını kayıt altına almak, hata mesajlarını kayıt altına almak vb sebeplerden dolayı loglama (işlem kaydı) işlemlerinin gerçekleştirilmesi gerekmektedir.

Bu amaçla kullanılan farklı kütüphaneler bulunmaktadır. Linux/Unix sistemlerde özellikle bu amaç için geliştirilmiş ve en çok tercih edilen servis ile aynı ismi taşıyan syslog kütüphanesi kullanılmaktadır. Aşağıdaki örnek ile syslog servisini kullanan örnek bir loglama servisi geliştirilmiştir.


Kod:
#!/usr/bin/python


try:

       import logging
       import logging.handlers
       import sys
except ImportError,e:
       import sys
       sys.stdout.write("%s\n" %e)
       sys.exit(1)

class Log:
       logger = None
       @staticmethod

       def log_message(level, message):
               if not Log.logger:
                       Log.logger = logging.getLogger("Galkan")
                       syslog_handler = logging.handlers.SysLogHandler( address = ( '127.0.0.1', 514 ), facility = logging.handlers.SysLogHandler.LOG_LOCAL5 )
                       formatter = logging.Formatter('[%(levelname)s] - %(message)s')
                       syslog_handler.setFormatter(formatter)
                       Log.logger.addHandler( syslog_handler )

               if level == 1:
                       Log.logger.setLevel( logging.INFO )
                       Log.logger.info(message)
               elif level == 2:
                       Log.logger.setLevel( logging.WARN )
                       Log.logger.warn(message)
               elif level == 3:
                       Log.logger.setLevel( logging.ERROR )
                       Log.logger.error(message)
               else:
                       Log.logger.setLevel( logging.INFO )
                       Log.logger.info(message)

if __name__ == "__main__":
    Log.log_message(1, "Mesaj")
Syslog servisinin belirtildiği şekilde çalıştırılabilmesi için gerekli yapılandırma ayarları belirtildiği gibi olmaktadır. Belirtilen log seviyesi için dosyanın tam yolu ve ardından gerekli syslog modül ve ip, port yapılandırma bilgileri belirtilmektedir.

Kod:
# vi /etc/rsyslog.d/50-default.conf
local5.info                             -/var/log/galkan.log
# vi /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$UDPServerAddress 127.0.0.1
Yapılandırmanın ardından syslog servisi yeniden başlatılarak yapılandırmanın aktif hale gelmesi sağlanmaktadır. Bu durum aşağıdaki şekilde görülebilir.

Kod:
# netstat -nlput | grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*                           28687/rsyslogd
İlgili programın çalışmasının ardından belirtilen dosya içeriğine bakıldığında aşağıdaki içerik görüntülenecektir.

Kod:
# cat /var/log/galkan.log
Apr 29 14:52:33 localhost [INFO] - Mesaj

Saygılarımla. //Memotaz7
Kingof1453 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
09/2015
Nereden:
Bilinmiyor.
Mesajlar:
950
Konular:
95
Teşekkür (Etti):
149
Teşekkür (Aldı):
195
Ticaret:
(0) %
06-08-2016 19:58
#2
Bununla basit bir hafıza yazılabilir değilmi?
---------------------
Eğer bir insan hedefsiz olursa hayattan bir umududa yotur...
Ben Hacker Değilim Sadece Bir Defacerim..



Black Viking - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
02/2016
Nereden:
[vkng@vkng~]
Yaş:
4
Mesajlar:
2.008
Konular:
66
Teşekkür (Etti):
411
Teşekkür (Aldı):
455
Ticaret:
(0) %
06-08-2016 20:12
#3
Dostum Bir Konuyu Alıntı Yaparken Alıntı Olduğunu Belirtmen Gerekiyor.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı