Azule上で動作するWEBApiでログを出力する方法です。
クライアントとサーバ側で設定が必要です。
・クライアント側の設定
プロジェクトを右クリック等し、「NuGetパッケージの管理」を押下する。
log4netを検索する。
下記キャプチャーだと一番上に表示されているのがインストール対象。
赤枠のようにチェックし、インストールを押下します。
OKを押下します。
インストールが完了すると、赤枠のようなメッセージが表示されます。
AssemblyInfo.csに定義を追加します。
[assembly: log4net.Config.XmlConfigurator(Watch = true, ConfigFile = "log4net.config")]
log4net.configを新規に作成します。
<!--?xml version="1.0" encoding="utf-8" ?-->
ログ出力の定義をソースコードに追加します。
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Auth; using Microsoft.WindowsAzure.Storage.Queue; namespace WebApplication2.Controllers { public class MyParemeter { public string val1 { get; set; } public string val2 { get; set; } } public class DefaultController : ApiController { private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); // /api/HelloWorld public string Get([FromUri]MyParemeter parameter) { log.Info(string.Format("Get START", DateTime.Now)); String ret = "val1:" + parameter.val1 + "aaa"+ "," + "val2:" + parameter.val2 + "bbb"; // CloudQueueClientインスタンスを作成する var accountName = "test0514"; var accessKey = "7LT8DRTRvauOmaNyySKpeAe1uExkhXPjWMmPnuqs0en2wtE9FaTyM14emhRhwTRV7KAVri1llJgk6YPQK9SHAQ=="; var credential = new StorageCredentials(accountName, accessKey); var account = new CloudStorageAccount(credential, true); // Queueクライアントクラスのインスタンスを取得する var client = account.CreateCloudQueueClient(); // Queueへの参照を取得する var queueName = "testque"; var queue = client.GetQueueReference(queueName); // Queueが存在しない場合、作成する queue.CreateIfNotExists(); // メッセージをエンキューする var message = new CloudQueueMessage(ret); queue.AddMessage(message); log.Info(string.Format("Get END", DateTime.Now)); return ret; } } }
・サーバ側の設定
診断ログ項目を押下し、赤枠を参考に設定する。
事前にストレージアカウントを作成しておく必要がる。
・ログ出力結果