Yazılım Mimarileri ve Tasarım Desenleri Üzerine

Asp.NET Core 3.0 – Logging

Merhaba,

Nasıl ki; bir kaya parçası tarihsel bir muammayı günümüze aydınlatıcı bir bilgi taşıyabiliyorsa, nasıl ki; insan vücudundaki bir reaksiyon sağlığına dair geçmişini gözler önüne serebiliyorsa yahut nasıl ki; beşeri hayatta devletler vatandaşları hakkında istediği zaman istediği -zamana dair- verilere erişebiliyorsa işte bunlara benzer bir şekilde herhangi bir yazılımda yarınlarına, geçmişine dair izler bırakabilmelidir… En nihayetinde yukarıda verilen bu örnekler nihai olarak tüm varoluşun dününe dair bizlere bıraktığı aydınlatıcı bilgilerdir. İşte biz yazılımcılar, nesnenin yahut olayların tabiatında olan doğal iz mekanizmalarını irademizle yazılımlarımıza işleyerek sistemin işleyişini adım adım kayıt altına almakta ve bu yapılanıda “Raporlama” ya da birbaşka deyişle “Loglama” şeklinde ifade ederek, yazılımın bugünündeki işleyişi hakkında yarınlara bilgiler taşımaktayız.

Aslında yukarıdaki girişin biraz derin olduğunu düşünebilirsiniz, hatta aranızdan böyle bir konuya abartılı bir giriş olduğunu dahi söyleyenler olabilir. Tüm bu fikirlere açık ve saygılı olduğum kadar bir o kadar da susamış olduğumu bilmenizi isterim. Lakin bunun yanında da şunu ifade etmek isterim ki, şahsen ben bir konunun ya kuramsal ya da kavramsal olarak altını doldurmadıkça yaptığım işin dayandığı kolonlardan birinin eksik olduğunu düşünmekteyim. “Evet” birazdan Asp.NET Core mimarisinde Logging mekanizmasına dair –nasıl uygulanır?– sorusunun cevabı için hususi didiniyor olacağız ama bunun yanında kavramsal açıdan raporlama yahut loglama terimlerini hiç bilmeyenler için mümkün mertebe olayı tabiatla ilişkilendirmenin eksiltici yanını görmemekteyim.

Her neyse…

Şunu unutmamak gerekiyor ki loglama bir stratejidir. Yani sistemin herhangi bir ‘T’ zamanında yaptığı işlemleri adım adım kayda almasıdır. Ve yine herhangi bir ‘T + n’ zamanda ise geçmişe dair -süreçte neler olmuş?- sorusuna karşılık metinsel ya da sayısal istatiksel bilgiler veren mekanizmayı inşa etmektir. İşte bizler bu stratejiyi birçok yöntemle icra edebileceğimiz gibi bu içeriğimizde bunlardan (iyi kötü) birini ele alacağız. Asp.NET Core mimarisinde Logging mekanizmasını…

Asp.NET Core İle Logging

Bir uygulama için olmazsa olmaz özelliklerinden birisi olan log mekanizması, Asp.NET Core mimarisinde Logging frameworkü ile modüler bir şekilde uygulamaya dahil edilebilmekte ve sisteme entegresyonu gerçekleştirilebilmektedir.

Asp.NET Core mimarisinde Logging araçlarına Microsoft.Extensions.Logging kütüphanesinden erişilmektedir.

Tabi devam etmeden önce şunu belirtmek isterim ki, Asp.NET Core mimarisindeki dahili Logging mekanizması hazır sistemler içerisinde genellikle kullanılan bir mekanizmaya sahip olmakla beraber olmazsa olmaz şeklinde düşünülecek işlevselliğide sahip değildir. Bizler bu içeriğimizde bir Asp.NET Core uygulamasında log işlemleri için dahili olan Logging kütüphanesini sadece inceleyecek ve nasıl entegrasyonun gerçekleştirileceği üzerine konuşacağız. Zira yazılım projelerinde loglama mekanizmalarını ilgili ekibin/gelişticinin ihtiyaca dönük bir şekilde kendilerinin tasarlaması ve inşa etmesi tarafımca tavsiye edilmektedir.

Evet… Şimdi konumuza dönersek eğer Logging kütüphanesinde kullanacağımız enstrünmanları inceleyerek başlayalım;

Örnek Uygulama

Şimdi yukarıdaki yapılanmayı göz önüne alarak bir örnek icra edelim. İlgili içeriğimizde Asp.NET Core 3.0 çekirdeğinde bir uygulama ile birlikte MVC deseni kullanılacaktır.

Nihai olarak; hangi platform yahut proje olursa olsun bir uygulamanın olmazsa olmaz ana organlarından biri olan log mekanizması sisteme uygun eşlik edebilecek şekilde tasarlanmalı ve yukarıda belirttiğim gibi tekrar ifade ediyorum ki mümkünse ilgili proje ihtiyaçlarına özel bir log mekanizması ortaya koyulmalıdır. Tabi isterseniz de bu içeriğimizde olduğu gibi hazır olan Logging mekanizmasıyla birlikte piyasada bulunan birçok hazır log mekanizmasını uygulamalarınıza entegre ederek kullanabilirsiniz.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Exit mobile version