Azule Api appでLOG出力

Azule上で動作するWEBApiでログを出力する方法です。
クライアントとサーバ側で設定が必要です。


・クライアント側の設定

プロジェクトを右クリック等し、「NuGetパッケージの管理」を押下する。
log4netを検索する。
下記キャプチャーだと一番上に表示されているのがインストール対象。

001

 

 

 

 

赤枠のようにチェックし、インストールを押下します。

002

 

 

 

 

OKを押下します。

003

 

 

 

 

 

 

 

インストールが完了すると、赤枠のようなメッセージが表示されます。

004

 

 

 

 

AssemblyInfo.csに定義を追加します。

[assembly: log4net.Config.XmlConfigurator(Watch = true, ConfigFile = "log4net.config")]

005

 

 

 

 

log4net.configを新規に作成します。

<!--?xml version="1.0" encoding="utf-8" ?-->

















ログ出力の定義をソースコードに追加します。

007

 

 

 

 

 

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;
        }
    }
}

・サーバ側の設定

診断ログ項目を押下し、赤枠を参考に設定する。
事前にストレージアカウントを作成しておく必要がる。

008

 

 

 

 

・ログ出力結果

009

010


Bookmark this on Yahoo Bookmark
Bookmark this on Google Bookmarks
Share on LinkedIn
LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>