差分

ナビゲーションに移動 検索に移動

Xamarin.MacでNLogを使う

1,759 バイト追加, 2019年5月22日 (水) 05:13
Administrator がページ「Xamarin.Mac/NLogを使う」を「Xamarin.MacでNLogを使う」に移動しました
無限ループとは、[[無限Xamarin.Mac]]に繰り返されるでも[[ループNLog]]のことである。を使えると捗る。
==実装1=====[[C言語Xamarin.Mac]]でも[[NLog]]はなんら問題なく使用できる。[[NuGet]]から一発[[インストール]]である。試してはいないが[[MonoMac]]===<pre>for(;;)処理;</pre>* 2013年時点でもっとも推奨されている記述方法である。でも同じだと思う。
ただし[[ファイル]]に出力する場合に注意が必要で、[[Mac OS X]]ではあらゆる[[ファイル]]は[[アプリ]]の外部に保存する必要があるため、NLog.configファイルの設定例でよく見かける「basedir変数」以下に書き込む設定は使えない。
<pre>while(1)処理;</pre>===ファイルに出力するNLog.configの設定例===* この記法は馬鹿なコンパイラではループの度に判定処理が入るという欠点がある。* そこで以下の例では[[Visual C++Mac OS X]]ではC4127警告<ref>http:では定番の「~/Library/msdn.microsoft.comLogs/ja-jp/library/6t66728h.aspx</ref>が発令され怒られる。[[マイクロソフト]]社内でこの記法を用いると[[リストラ]]対象となるかは定かではない。」以下に出力してみた。
<source lang="xml">
<?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"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" >
<pre>int i,j;for(ivariable name=0;i<10;i++) { for(j"appname" value=0;j<10;i++)処理;}<"monobook"/pre>* [[不具合]]、いわゆる[[バグ]]である。
<targets>
<target xsi:type="File" name="logfile"
fileName="${specialfolder:folder=MyDocuments}/Library/Logs/${appname}/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
<pre>int i,j;for(itarget xsi:type=0;i<100;i++) { for(i"Console" name=0;i<10;i++)処理;}<"console" /pre>
</targets>
<prerules>int i;for(i <logger name="*" minlevel="Trace" writeTo=0;i"logfile" /> <logger name=INT_MAX;i++)処理;"*" minlevel="Info" writeTo="console" /> </prerules></nlog></source>NLogに設定するパスは[[絶対パス]]なので、ホームディレクトリのパスの取得は「[[MonoMac/特殊ディレクトリのパスを取得する]]」を用いてMyDocumentsを指定することで取得した。
===[[Active Basic]]===<pre>Do 処理Loop</pre>===[[HSP]]===<pre>repeat 処理loop</pre>===x86[[アセンブラ]]===<pre>thelabel:jmp thelabel</pre>また、NLog.config中でアプリ名を動的に取得する方法がわからなかったので、この例では自前でappname変数を用意している。
== 関連項目 =備考===NLog.configは初期状態でビルド時にコピーされない設定になっていると思うので修正するのを忘れないこと。NLog.configファイルのプロパティの「出力ディレクトリにコピー」の値を「新しい場合のみコピー」または「常にコピー」に設定する。
===不具合===これは2015年8月3日の情報です。[[Xamarin.Mac]]において「Debugビルド」を行うとアプリ内(***.app内)のMonoBundleディレクトリにNLog.configファイルが生成(コピー)されるが、「Releaseビルド」では生成されないようだ。たぶん[[不具合]]だと思う。 ==関連項目==*[[MonoMac/特殊ディレクトリのパスを取得する]] == 参考文献 ==
{{reflist}}
 
{{stub}}
 
[[category:Xamarin.Mac]]
[[category:MonoMac]]
匿名利用者

案内メニュー