server | v4 switch to v5  

ログ

目次

ログのフレームワーク

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アペンダーを設定してください。

  • 場所: デフォルトでは「/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>

トップに戻る
 

FAQ


ドキュメントのトップへ戻る