NLog ile Loglama

Öncelikle projeye sağ tıklayıp “Manage NuGet Packages…” diyoruz. Oradan NLog’u bulup projeye ekliyoruz. Loglama yapacağımız sınıfın içine aşağıdaki satırı ekliyoruz.

private static Logger logger = LogManager.GetCurrentClassLogger();

NLog nereye, nasıl loglayacağını config dosyasından algılıyor. Bunun için NLog.config adında bir xml dökümanı oluşturuyoruz. Dosyanın Visual Studio üzerinden özellikleri Build Action:Content ve Copy To Output Directory:Copy if newer şeklinde olmalı.

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="file" xsi:type="File" fileName="test.log" layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:format=tostring}"/>
    <target name="eventLog" xsi:type="EventLog" layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:format=tostring}"/>
  </targets>
  <rules>
    <logger name="*" writeTo="file"/>
    <logger name="*" writeTo="eventLog"/>
  </rules>
</nlog>

Yukarıdaki örnek konfigurasyon hem test.log adlı dosyaya hem de Windows Olay Görüntüleyicisi’ne kayıt atmaktadır. Sadece dosyaya log atmasını istersek rules altındaki ikinci sıradaki  logger’ı silmek yeterlidir.  Konfigurasyon ile ilgili daha fazla bilgiyi https://github.com/nlog/nlog/wiki/Configuration-file adresinden alabilirsiniz.

İstediğimiz metodun içine aşağıdaki örnek satırı ekleyerek log atabiliyoruz.

logger.Log(LogLevel.Debug, "Test");

veya exception loglamak istersek;

logger.LogException(LogLevel.Debug, "Mesaj", exception);

Xaml içinde StringFormat Türkçeleştirme

Xaml içinden StringFormat ile herhangi bir tarihin hangi güne denk geldiğini göstermek istediğimizde ingilizce olarak gösterildiğini göreceksiniz. Bunun nedeni xaml’in varsayılan dil olarak en-US kullanmasıdır.

<TextBlock Text="{Binding Path=Tarih, StringFormat=dd.MM.yyyy - dddd}"/>

Bu problemi aşmak için aynı xaml’de namespace’lerin tanımlandığı yere aşağıdaki kodu eklemek yeterlidir.

xml:lang="tr-TR"

Visual Studio 2012 Uzaktan Hata Ayıklama

Visual Studio 2012 ile ağınızdaki başka bir bilgisayarda çalışan programa bağlanıp hata ayıklayabiliyoruz. Bunu yapabilmek için bazı önkoşullar var.

  • Uzak bilgisayar ve Visual Studio’nun olduğu bilgisayar aynı ağda veya ethernet kablosuyla direkt olarak bağlı olmalıdır. İnternet üzerinden bağlantılar desteklenmiyor.
  • Uzak bilgisayarda Remote Debugging Components kurulu ve çalışıyor olmalıdır.
  • Uzak bilgisayara Remote Debugging Components yüklemek için yönetici hesabına ihtiyaç vardır. Ayrıca erişim içim yetkili bir kullanıcı olmak gereklidir.

Öncelikle Remote Tools’u indirip uzak bilgisayara kurmak gerekiyor. Aşağıdaki bağlantıdan x86, x64 veya arm mimarisine göre olanı indirebiliyoruz.

http://www.microsoft.com/visualstudio/11/en-us/downloads/remote-tools#remote-tools

Kurulum tamamlandıktan sonra Start –> Microsoft Visual Studio 2012 –> Remote Debugger Configuration Wizard’ı çalıştırıyoruz. Çıkan pencereyi onayladığımız zaman uzak bilgisayardaki işimiz tamamlanmış oluyor.

Visual Studio üzerinden Debug —> Attach to process… yaptığımızda çıkan pencereden Find… tuşuna basıyoruz. Orada uzak bilgisayarı seçiyoruz. Alt kısımda o bilgisayarda çalışan, bağlanmak istediğimiz process’i seçiyoruz ve Attach diyoruz.