2017-09-13 11 views
1

私はAzureでWebJobを作成しました。私はNlogを使い、ログファイルをWebJobのexeファイルの "ベースディレクトリ"に向けました。 Webジョブが作成され、エラーなしで正常に実行されています。また、Nlogがローカルシステムにログファイルを作成しています。しかし、紺碧では、私はログファイルを見つけることができません。私は "app_data \ jobs \ triggered"フォルダに入って、私が作成したジョブを見つけました。しかし、ログファイルは作成されていません。私は紺碧の中にコンソールログを書いて見ることができます。AzureでWebJobのログファイルが見つかりません

EDIT

のProgram.cs

using NLog; 
using System; 

namespace FacilitationPortal.WebJob { 
    class Program 
    { 
     static Logger logger = LogManager.GetCurrentClassLogger(); 
    static void Main(string[] args) 
    { 
     string nlogServicePath = AppDomain.CurrentDomain.BaseDirectory + "NLog-WebSchedulerService.config"; 

     NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration(nlogServicePath, true); 
     logger.Debug("Initializing the Web Scheduler Service"); 
     Console.WriteLine("Initializing the Web Scheduler Service"); 
     StartServices(); 
    } 

    private static void StartServices() 
    { 
     logger.Debug("INSIDE - START SERVICES"); 
    } 
    } 
} 

NLog-WebSchedulerService.configは

<?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" autoReload="true"> 
    <targets > 
    <target xsi:type="File" name="logfile" 
      fileName="${basedir}/logs/WebScheduler.log" 
      layout="${longdate} ${level:uppercase=true:padding=5} ${gdc:item=hostname} ${gdc:item=useremail} (${logger} - ${mdc:item=actionname}) ${message} ${exception:format=tostring}" 
      archiveEvery="Day" 
      archiveFileName ="${basedir}/logs/WebScheduler.${date:format=yyyy-MM-dd HH.mm}.{#}.zip" 
      archiveNumbering ="Sequence" 
      maxArchiveFiles="30" 
      fileAttributes="Compressed" 
      enableArchiveFileCompression = "true"> 
    </target> 
    </targets> 
    <rules> 
    <logger name="*" minlevel="Debug" writeTo="logfile"> 
    </logger> 
    </rules> 
</nlog> 

Console.WriteLineをを(ファイル)アズールコンソールでログを印刷しています。しかし、logger.Debug()は、exeが存在する場所にログファイルを作成していません。私のローカルシステムで同じアプリケーションを実行すると、ログファイルが作成されています。

おかげまず

+0

関連コードを投稿できますか? – Thomas

+1

私は、 '' $ {basedir} ''を '' fileName = "D:\ home \ data \ logs \ WebScheduler.log" ''のような既存の物理ディレクトリに置き換え、ログがAzure、あなたはそれを試すことができます。 –

答えて

1

は、あなたのNLog-WebSchedulerService.configとAzureのに継続的に実行しているWebJobを展開を使用して、私はあなたのログがD:\local\Temp\jobs\triggeredフォルダ下のファイルかどうかをチェックすることができ、D:\local\Temp\jobs\continuous\WebJob1\1hxylleo.lzh\logsフォルダの下にログを見つけることができます。ほかに

enter image description here

私は私の初期のコメントで述べたように、あなたの代わりにD:\local\Tempフォルダの下にログを格納するのは、そのようなfileName="D:\home\data\logs\WebScheduler.log"としてログを保存するためのAzure上の既存の物理ディレクトリを指定することができます。

関連する問題