Uygulamalarinizi Detayli Loglayin (.Net Icin)
-
Selamlar,
Sirkette kullaniyoruz ve memnun oldugum icin burada paylasayim dedim. Kapsamli programlar yazdiginizda bazen debug tarafinda sikintilar yasarsiniz, surekli break pointlerle ilerlemek yerine guzel bir loglama sistemi ile neyin nerede oldugunu cok detayli sekilde gorebilirsiniz.
Oncelikle bir kac seviye log var, yani error icin, debug icin, info icin loglamalarlar yapabilirsiniz ve bunlari parametrelerle filtreleyebilirsiniz. Console uygulamasi yaziyorsaniz , log durumunu anlik olarak console a yazdirabiliyorsunuz (ConsoleAppender ile), yine ayni sekilde bir log dosyasina da yazabiliyorsunuz (FileAppender ile), cesitli formatlar verebiliyorsunuz. Size mesela hatanin hangi satirda oldugundan tutun da hangi class ve hangi metodun icinde olduguna kadar otomatik bilgiler verebiliyor.
Nugetten projenize ekleyebilirsiniz https://www.nuget.org/packages/log4net/
Kullanimla ilgili burada dokuman var onu takip etmeniz kafi http://www.codeproject.com/Articles/140911/log-net-Tutorial
Yazilardan anlamayanlar icin de videolu anlatim var
https://www.youtube.com/watch?v=2lAdQ_QwNww
edit: web tarafi icin de kullanabilirsiniz
Log toolu ile ne yapabilirsinizi toparlarsak: Islemlerin bitis surelerini hesaplayabilirsiniz, hatalari, info lari, debug kismini ayri ayri loglayabilirsiniz, olusan hatalarin satir numarasini dahi gorebilirsiniz vs.
Kolay gelsin
-
Hocam uygulamayı yavaşlatıyor mu (İllaki yavaşlatıyordur ancak gözle görülür şekilde mi)?
-
güzel bir tavsiye olmuş benimde önerilerim
eğer paranız varsa iyi bir apm alın(appdynamics veya dynatrace)
paramız yok diyorsanız kibana + logstash ile uğraşarak mucizeler yaratabilirsiniz
-
fark etmedim hocam yavaslatip yavaslatmadigini ama bu seylerin cok da sisteme etkisi yok, text bazli calisiyor zaten oyle ahim sahim bir islem yaptigi yok. Tek sikintisi anlik olarak I/O islemi olur o da o kadar sikintili bir sey degil.
-
Javadaki gibi mi Log.e log.i gibi gibi... ? Süreçleri adım adım izlemek için
Örneğin
Log.e("Activity" , "Created");
Log.e("Activity" , "Destroyed");
gibi ?
EDİT : Pardon Android dicektim :D
MhmdAlmz tarafından 03/May/16 18:07 tarihinde düzenlenmiştir -
sandman bunu yazdı
güzel bir tavsiye olmuş benimde önerilerim
eğer paranız varsa iyi bir apm alın(appdynamics veya dynatrace)
paramız yok diyorsanız kibana + logstash ile uğraşarak mucizeler yaratabilirsiniz
hocam bunlar cok kapsamli seyler :) benim paylastigim basit text tabanli log tutuyor .. Ancak bu surecleri boyle detaylica gosteren uygulamalarin olmasi da guzel. Tesekkurler
@MhmdAlmz, hocam o bahsettigin isi c# da console.write ile yaparsin bu kast ettigim daha cok detay veren (hangi fonksiyonda ve hatta hangi satirda meydana geldigini dahi logluyor ve senin bunlari yazmana da gerek yok harici olarak),
-
unbalanced bunu yazdısandman bunu yazdı
güzel bir tavsiye olmuş benimde önerilerim
eğer paranız varsa iyi bir apm alın(appdynamics veya dynatrace)
paramız yok diyorsanız kibana + logstash ile uğraşarak mucizeler yaratabilirsiniz
hocam bunlar cok kapsamli seyler :) benim paylastigim basit text tabanli log tutuyor .. Ancak bu surecleri boyle detaylica gosteren uygulamalarin olmasi da guzel. Tesekkurler
@MhmdAlmz, hocam o bahsettigin isi c# da console.write ile yaparsin bu kast ettigim daha cok detay veren (hangi fonksiyonda ve hatta hangi satirda meydana geldigini dahi logluyor ve senin bunlari yazmana da gerek yok harici olarak),
Hocam sendeki loglardan birkaç satır örnek koyma şansın var mıdır?
-
iste degilim hocam simdi o yuzden bendeki projelerde oyle cok log yok
ama buradan bakalirsin mesela .. cesitli filtreler ekleyerek daha detayli sonuclar elde edebilirsin yani ozellestirmelere izin veriyor..
-
Paylaşım için teşekkürler. Log4Net sanırım XML olarak çıktı veriyor. Node.JS için Bunyan'ı ( https://github.com/trentm/node-bunyan ) öneririm. Benzer şekilde seviyelere göre log tutuyor. Örneğin uygulamada biri illegal birşey yaptığında hipchat (ya da slack) e chat mesajı olarak anında gönderiyor. Ya da olası diğer hatalarda..
Bunyan'daki log seviyeleri şöyle:
"fatal" (60): The service/app is going to stop or become unusable now. An operator should definitely look into this soon.
"error" (50): Fatal for a particular request, but the service/app continues servicing other requests. An operator should look at this soon(ish).
"warn" (40): A note on something that should probably be looked at by an operator eventually.
"info" (30): Detail on regular operation.
"debug" (20): Anything else, i.e. too verbose to be included in "info" level.
"trace" (10): Logging from external libraries used by your app or very detailed application logging.
Mesela bilgileri (info level) )bir log dosyasına kaydedip, warn 'ları hipchat'e gönder, error ve fatalları da mail olarak gönder derseniz sizi bu yollarla uyarır.. (Bunlar Node.JS için fakat log4net de benzer bir uygulamaya benziyor).
Örnek bunyan logu da aşağıdaki gibi (JSON):
{ "name": "myserver", "hostname": "banana.local", "pid": 123, "req": { "method": "GET", "url": "/path?q=1#anchor", "headers": { "x-hi": "Mom", "connection": "close" }, "remoteAddress": "120.0.0.1", "remotePort": 51244 }, "level": 3, "msg": "start request", "time": "2012-02-03T19:02:57.534Z", "v": 0 }
-
evet hocam benzer mantik ama xml ya da json formatinda degil normal text olarak yaziyor ama sana formatli kaydetme imkani da veriyor.
-
@unbalanced abi WCF de falan da aynı şey mümkün mü ? Onları da loglaya biliyor muyuz ? Aslında bilmem gereken bu :/