このページは編集中です。更新が保留になっている可能性があります。
ログ
目次
ログのフレームワーク
Photonはログのフレームワークとしてlog4netを使用します。
以下のドキュメントを参照してください: https://logging.apache.org/log4net/
ログファイルと場所
ログファイルには以下の3つの種類があります:
管理されていないPhoton Socket Serverログ
- 内容: 管理されていない「PhotonSocketServer.exe」コアにより書き込まれます。Photonの開始/停止シーケンスによるすべてのステータスメッセージはここにログされます。これにはネイティブコアの例外も含まれます(例えば:Photon自体のバグ、無効なクライアントデータに起因する直列化エラー、など)。
- 名前: 「Photon-{InstanceName}-Timestamp.log」
- ログレベルの設定: なし
- 場所 デフォルトは「/bin_WinXXX/log」です。ログファイルの場所を変更するには、「PhotonServer.config」内の各インスタンスノードの「LogFileLocation」属性を設定します。 「LogFileLocation」は絶対パス、または「PhotonSocketServer.exe」への相対パスのいずれも可能です
例:
<Default
MinimumTimeout="5000"
MaximumTimeout="30000"
LogFileLocation="..\MyLogFolder"
>
管理されたCRLログ
内容: アプリケーションをホスティングする、管理された.NETランタイムによって書き込まれます。CLRからのステータスメッセージはすべてここにログされます(例:読み込まれた .NETアプリケーションおよびアセンブリの情報)。またカスタムの .NET アプリケーションからの、すべての未処理の例外もここにログされます。
名前: "PhotonCLR.log"
ログレベルの設定: 「/deploy/bin_WinXXX/Photon.local.log4net」内で適切なlog4netアペンダーを設定してください。
Location: デフォルトでは「/bin_WinXXX/log」です。 ログファイルの場所を変更するには、「/deploy/bin_WinXXX/Photon.local.log4net」内で適切なlog4netアペンダーを設定してください。「PhotonServer.config」からの「LogFileLocation」属性の値を含む「Photon:UnmanagedLogDirectory」プロパティを使用可能です。
例:
<appender name="A1" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%property{Photon:UnmanagedLogDirectory}\\PhotonCLR.log" />
<!-- snip -->
</appender>
アプリケーションログ
- 内容: Photonでホスティングされる各.NETアプリケーションは独自のアプリケーションログファイルを書きます。これにはアプリケーションのすべてのデバッグ出力が含まれます。
- 名前: "{MyApplication}.log"
- ログレベルの設定: 「/deploy/{MyApplication}/bin/log4net.config」内で適切なlog4netアペンダーを設定してください。
- 場所: デフォルトでは「/deploy/log」です。
ログファイルの場所を変更するには、「/deploy/{MyApplication}/bin/log4net.config」内で適切なlog4netアペンダーを設定してください。
「Photon:ApplicationLogPath" property」プロパティを使用できます。このプロパティはデフォルトでは「/deploy/log」に設定されていて、アプリケーションの
Setup()
メソッドで変更できます。
protected override void Setup()
{
// log4net
log4net.GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(this.ApplicationRootPath, "log");
var configFileInfo = new FileInfo(Path.Combine(this.BinaryPath, "log4net.config"));
if (configFileInfo.Exists)
{
LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
XmlConfigurator.ConfigureAndWatch(configFileInfo);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="true" update="Overwrite">
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%property{Photon:ApplicationLogPath}\\{MyApplication}.log" />
<!-- snip -->
</appender>
<root>
<!-- <level value="INFO" /> -->
<!-- <level value="DEBUG" /> -->
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>