2016-02-05 17 views
15

Tamamen eksik olduğum sürece, bu konumun ne olduğunu açıklamaksızın, NLog documentation'un örneklerinde ${basedir} kullandığı izlenimine sahibim.

Tüm olası seçenekleri anlamlı bir açıklamayla listeleyen bilgileri nereden bulabilirim?

Ben tanımlanan bu yapılandırmaya sahip: O bildiğim kadarıyla söyleyebilirim olarak çalışmaktadır

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="true"> 
    <targets> 
    <target name="file" xsi:type="File" 
       layout="${longdate} ${logger} ${message}" 
       fileName="${basedir}/logs/${shortdate}.txt" 
       keepFileOpen="false" 
       encoding="iso-8859-2" /> 
    </targets> 
    <rules> 
    <logger name="*" minlevel="Debug" writeTo="file" /> 
    </rules> 
</nlog> 

, ama bir şey kaydeder bir ipucu bile yok.

+1

Rehber => Her zaman Çıktı kopyala için NLog-config-dosya için Visual Studio içindeki Dosya Özellikleri değiştirmeyi unutmayın. 'Bin \ debug' klasörüne Yani app.config https://gist.github.com/Chrisso/1703644 –

cevap

14

${basedir} - Uygulama çalışır dizin. Sanırım, yardımsever bulursunuz: https://github.com/NLog/NLog/wiki/Layout-Renderers

+2

içine nlog-config Alternatif enjekte, VS onu çalıştırıyorsanız? Bu durumda işe yaramıyor, çünkü hiç bir dosya göremiyorum. Yine de hiçbir hata alamıyorum. – Spikee

+0

@Spikee Uygulamanızda AppDomain.CurrentDomain.BaseDirectory – galakt

+1

'a göre denetleyebilirsiniz. Bu, 'bin \ debug' aslında, ancak' logs' alt klasörünü veya herhangi bir dosyayı göremiyorum. – Spikee

3

Bu, aynı zamanda platforma da bağlıdır. Düzenli .Net projeleri için aslında bin veya bin/debug vb. (Yapı ayarlarınıza bağlı olarak)

coreclr/aspnet5 için dnx çalışma zamanınızın bin klasörü. Bu hala devam eden bir iş. Konsolundan için

AppDomain.CurrentDomain.BaseDirectory 

veya Windows bu dizin ise, Visual Studio içinde bin/debug olduğunu Forms uygulaması:

2

dayanarak zaten sağlanan cevaplar ve yorumlar, cevap NET uygulaması için özetlenebilir. Uygulama dağıtılmışsa, yol büyük olasılıkla yürütülebilir yol olacaktır.

Web uygulamaları (ASP.NET) için bu, Web uygulama kök dizini olacaktır.

Herhangi bir dosya görmemesi, aşağıdakileri içeren çeşitli nedenlerle tetiklenebilir: NLog yapılandırma hataları ve hedef dosyayı yazama. Bu hatalar yapmak göstermek için NLog.config (veya nlog yapılandırma web.config veya app.config içinde gömülü) çıkış tür hatalara bir iç günlük dosyasını belirtir emin olun:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     internalLogFile="C:\NLogError\NLog.log"> 

<!-- targets and rules come here --> 

</nlog> 
2

başarısızlığın başka olasılık eğer olmasıdır NLog.config kullanarak, NLog yapılandırma dosyasını bulamıyor. Dosyayı her zaman Yapınızdaki Kopyala olarak ayarlayın ve bin dizininizde yer alacaktır, böylece NLog bunu çalışma zamanında bulabilir.

NLog yapılandırma bilgilerini App.config dosyanıza kopyalarsanız, bu sorunla karşılaşmazsınız.

+0

Ayrıca herhangi bir günlük alabilmeden önce Visual Studio projemde "NLog.xsd" (NLog yapılandırmasında başvurulan) kopyası için "Çıktısına Kopyala" seçeneğini çevirmem gereken yere benzer bir şeyle karşılaştım. test sırasında "bin/debug" klasörümde yazmak. –