ページ「アクチュエーター」と「Xamarin.MacでNLogを使う」の間の差分

提供: MonoBook
(ページ間の差分)
ナビゲーションに移動 検索に移動
imported>Administrator
(ページの作成:「'''アクチュエーター'''(actuator)とは、入力されたエネルギーを物理的運動に変換するもののことである。 == キーボード ...」)
 
imported>Administrator
(Administrator がページ「Xamarin.Mac/NLogを使う」を「Xamarin.MacでNLogを使う」に移動しました)
 
1行目: 1行目:
'''アクチュエーター'''(actuator)とは、入力されたエネルギーを物理的運動に変換するもののことである。
+
[[Xamarin.Mac]]でも[[NLog]]を使えると捗る。
  
== [[キーボード]] ==
+
==実装1==
[[パソコン]]の世界では、主に[[キーボード]][[キー]]が押された際に、キーが元の位置に戻るための反発力を発生させるためのバネなどを指すことが多い。
+
[[Xamarin.Mac]]でも[[NLog]]はなんら問題なく使用できる。[[NuGet]]から一発[[インストール]]である。試してはいないが[[MonoMac]]でも同じだと思う。
  
=== 主なアクチュエーター形式 ===
+
ただし[[ファイル]]に出力する場合に注意が必要で、[[Mac OS X]]ではあらゆる[[ファイル]]は[[アプリ]]の外部に保存する必要があるため、NLog.configファイルの設定例でよく見かける「basedir変数」以下に書き込む設定は使えない。
キーボードに使われているアクチュエーターには主に以下のようなものがある。
 
==== [[ラバードーム]] ====
 
いわゆるゴムを使う方式。
 
  
安物の代名詞と言われることが多いが、いわゆる安物は[[ラバードーム]]100%の製品であり、[[ラバードーム]]と他のアクチュエーターを絶妙にブレンドした品質の高い製品もある。
+
===ファイルに出力するNLog.configの設定例===
; 主な製品
+
そこで以下の例では[[Mac OS X]]では定番の「~/Library/Logs/」以下に出力してみた。
* [[富士通コンポーネント Thumb Touch FKB7628]]
 
* [[富士通コンポーネント Libertouch FKB8540]]
 
* [[PFU Happy Hacking Keyboard Lite2]]
 
  
==== [[バックリング・スプリング]] ====
+
<source lang="xml">
円柱状のバネ(スプリング)を歪める方式。
+
<?xml version="1.0" encoding="utf-8" ?>
英語表記は「Buckling Spring」である。
+
<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" >
  
[[IBM]]の高級キーボードがよく採用していた。
+
  <variable name="appname" value="monobook"/>
; 主な製品
 
* [[IBM 5576-A01]]
 
* [[IBM 5576-002]]
 
  
==== [[コニカル・コイル・スプリング]] ====
+
  <targets>
円錐状のバネ(スプリング)を収縮させる方式。
+
    <target xsi:type="File" name="logfile"
英語表記は「Conical Coil Spring」である。
+
    fileName="${specialfolder:folder=MyDocuments}/Library/Logs/${appname}/${shortdate}.log"
[[富士通]]などが提供している資料では[[コニックリング]]と表記してある。また、日本の多くのバネ屋さんでは「[[コニカル・スプリング]]」と「コイル」という単語を省略して表記してあることが多い。
+
        layout="${longdate} ${uppercase:${level}} ${message}" />
  
[[東プレ]]や[[富士通]]などの高級キーボードがよく採用している。
+
    <target xsi:type="Console" name="console" />
; 主な製品
 
* [[東プレ Realforce 89]]
 
* [[PFU Happy Hacking Keyboard Professional]]
 
* [[PFU Happy Hacking Keyboard Professional2]]
 
  
==== 永久磁石 ====
+
  </targets>
韓国EMBOTECが開発した「磁気浮上キーボード」で採用されていた形式。
 
永久磁石を使った無接点のアクチュエーターであるため、[[ラバードーム]]はもとより、バックリングやコニックリングなどのスプリングよりも耐久性は高いと言われている。
 
  
磁石同士が近づけば近づくほど反発力は強くなるため、最初は軽く、押し込むと重くなる反発力などどうかと思う点もあるものの、実際の打鍵感はちょっと気になるが、すでに会社ごと潰れた模様で現物を拝むことは難しい状況である。
+
  <rules>
 +
    <logger name="*" minlevel="Trace" writeTo="logfile" />
 +
    <logger name="*" minlevel="Info"  writeTo="console" />
 +
  </rules>
 +
</nlog>
 +
</source>
 +
NLogに設定するパスは[[絶対パス]]なので、ホームディレクトリのパスの取得は「[[MonoMac/特殊ディレクトリのパスを取得する]]」を用いてMyDocumentsを指定することで取得した。
  
* http://japanese.engadget.com/2007/07/29/magnetic-levitation-keyboard/
+
また、NLog.config中でアプリ名を動的に取得する方法がわからなかったので、この例では自前でappname変数を用意している。
  
== その他 ==
+
===備考===
 +
NLog.configは初期状態でビルド時にコピーされない設定になっていると思うので修正するのを忘れないこと。NLog.configファイルのプロパティの「出力ディレクトリにコピー」の値を「新しい場合のみコピー」または「常にコピー」に設定する。
  
== 関連項目 ==
+
===不具合===
* [[キーボード]]
+
これは2015年8月3日の情報です。
* [[ロボット]]
+
[[Xamarin.Mac]]において「Debugビルド」を行うとアプリ内(***.app内)のMonoBundleディレクトリにNLog.configファイルが生成(コピー)されるが、「Releaseビルド」では生成されないようだ。たぶん[[不具合]]だと思う。
  
== 参考文献 ==
+
==関連項目==
<references/>
+
*[[MonoMac/特殊ディレクトリのパスを取得する]]
  
== 外部リンク ==
+
==参考文献==
 +
{{reflist}}
  
 
{{stub}}
 
{{stub}}
 +
 +
[[category:Xamarin.Mac]]
 +
[[category:MonoMac]]

2019年5月22日 (水) 05:13時点における最新版

Xamarin.MacでもNLogを使えると捗る。

実装1[編集 | ソースを編集]

Xamarin.MacでもNLogはなんら問題なく使用できる。NuGetから一発インストールである。試してはいないがMonoMacでも同じだと思う。

ただしファイルに出力する場合に注意が必要で、Mac OS Xではあらゆるファイルアプリの外部に保存する必要があるため、NLog.configファイルの設定例でよく見かける「basedir変数」以下に書き込む設定は使えない。

ファイルに出力するNLog.configの設定例[編集 | ソースを編集]

そこで以下の例ではMac OS Xでは定番の「~/Library/Logs/」以下に出力してみた。

<?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" >

  <variable name="appname" value="monobook"/>

  <targets>
    <target xsi:type="File" name="logfile" 
    	fileName="${specialfolder:folder=MyDocuments}/Library/Logs/${appname}/${shortdate}.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />

    <target xsi:type="Console" name="console" />

  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="logfile" />
    <logger name="*" minlevel="Info"  writeTo="console" />
  </rules>
</nlog>

NLogに設定するパスは絶対パスなので、ホームディレクトリのパスの取得は「MonoMac/特殊ディレクトリのパスを取得する」を用いてMyDocumentsを指定することで取得した。

また、NLog.config中でアプリ名を動的に取得する方法がわからなかったので、この例では自前でappname変数を用意している。

備考[編集 | ソースを編集]

NLog.configは初期状態でビルド時にコピーされない設定になっていると思うので修正するのを忘れないこと。NLog.configファイルのプロパティの「出力ディレクトリにコピー」の値を「新しい場合のみコピー」または「常にコピー」に設定する。

不具合[編集 | ソースを編集]

これは2015年8月3日の情報です。 Xamarin.Macにおいて「Debugビルド」を行うとアプリ内(***.app内)のMonoBundleディレクトリにNLog.configファイルが生成(コピー)されるが、「Releaseビルド」では生成されないようだ。たぶん不具合だと思う。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]