0

I am new in Photon and Unit3d, so i just installed a photon server and made a little example script with log4net.config, but i dont see any debug message in my photonserver only info, I modified log4net.config.

My xml code:

    <?xml version="1.0" encoding="utf-8" ?>
<log4net debug="true">

  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %-30.30c{2} %m% [%t] [%x]%n" />
    </layout>
  </appender>

  <!-- "normal" log file appender -->
  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="%property{Photon:ApplicationLogPath}\\sOnline.log" />
    <!--param name="File" value="log\Lite.log" /-->
    <param name="AppendToFile" value="true" />
    <param name="MaxSizeRollBackups" value="1" />
    <param name="MaximumFileSize" value="250MB" />
    <param name="RollingStyle" value="Size" />
    <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
    </layout>
  </appender>

  <!-- performance counter log file appender -->
  <appender name="CounterAppender" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="%property{Photon:ApplicationLogPath}\\sOnlineCounter.log" />
    <!--param name="File" value="log\LiteCounter.log" /-->
    <param name="AppendToFile" value="true" />
    <param name="MaxSizeRollBackups" value="1" />
    <param name="MaximumFileSize" value="1MB" />
    <param name="RollingStyle" value="Size" />
    <param name="StaticLogFileName" value="true" />
    <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d{ABSOLUTE} %m%n" />
    </layout>
  </appender>

  <!-- logger -->
  <root>
    <level value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
    <appender-ref ref="ConsoleAppender" />
  </root>

  <!-- operation data logger -->
  <!-- set level to DEBUG to enable operation data logging-->
  <logger name="OperationData" additivity="false">
    <level value="INFO" />
    <appender-ref ref="LogFileAppender" />
  </logger>

  <!-- performance counter logger -->
  <!-- set level to DEBUG to enable performance counter logging-->
  <logger name="PerformanceCounter" additivity="false">
    <level value="INFO" />
    <appender-ref ref="CounterAppender" />
  </logger>

  <logger name="ExitGames.Diagnostics.Monitoring.CounterSampleSender" additivity="false">
    <level value="INFO" />
    <appender-ref ref="CounterAppender" />
  </logger>
</log4net>

and this C# script :

using ExitGames.Logging;
using ExitGames.Logging.Log4Net;
using log4net.Config;
using Photon.SocketServer;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace sOnline
{
    public class PhotonServer : ApplicationBase
    {
        #region Overload of ApplicationBase
        protected override PeerBase CreatePeer(InitRequest initRequest)
        {
            return new UnityClient(initRequest.Protocol, initRequest.PhotonPeer);
        }

        protected override void Setup()
        {
            var file = new FileInfo(Path.Combine(BinaryPath, "log4net.config"));
            if (file.Exists)
            {
                LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
                XmlConfigurator.ConfigureAndWatch(file);

            }
        }

        protected override void TearDown()
        {

        }
        #endregion
    }
}

This is log message

2014-06-02 15:55:36,299 [17] INFO  Photon.SocketServer.ApplicationBase [(null)] - Application start: AppId=sOnline; AppPath=F:\Photon\deploy\sOnline, Type=sOnline.PhotonServer 
2014-06-02 15:55:36,379 [17] INFO  Photon.SocketServer.ApplicationBase [(null)] - Application is stopping: AppId=sOnline
2014-06-02 15:55:36,382 [17] INFO  Photon.SocketServer.ApplicationBase [(null)] - Application stop: AppId=sOnline

help me please :)

Asker
  • 1
  • 2

2 Answers2

0
<file type="log4net.Util.PatternString" value="%property{Photon:ApplicationLogPath}\\sOnline.log" />

I don't see above property set for ConsoleAppender.

<root>
    <level value="DEBUG" />
    <appender-ref ref="ConsoleAppender" />

  </root>

Add this in your xml and try if it works.

Devesh
  • 2,024
  • 2
  • 16
  • 21
  • did not helped, just noticed in CLR.log doesnt appear DEBUG message too, but still thanks. – Asker Jun 03 '14 at 05:39
  • CLR.log I don't see this being referred in xml file. I have updated my and too for more information – Devesh Jun 03 '14 at 05:44
0

If you are using the {Photon:ApplicationLogPath} property in the log4net.config, you need to specify it in the Setup method (see code sample below).

To clarify - the log file is created, but you see only "INFO" messages, no "DEBUG" messages - right?
Are you actually doing anything that logs on "DEBUG" level? Try to add a DEBUG log message to your setup method, like this:

using ExitGames.Logging;
using ExitGames.Logging.Log4Net;
using log4net.Config;
using Photon.SocketServer;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace sOnline
{
  public class PhotonServer : ApplicationBase
  {
    private static readonly ILogger log = LogManager.GetCurrentClassLogger();

    #region Overload of ApplicationBase
    protected override PeerBase CreatePeer(InitRequest initRequest)
    {
        return new UnityClient(initRequest.Protocol, initRequest.PhotonPeer);
    }

    protected override void Setup()
    {
        var file = new FileInfo(Path.Combine(BinaryPath, "log4net.config"));
        if (file.Exists)
        {
            LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
            GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(this.ApplicationRootPath, "log");
            XmlConfigurator.ConfigureAndWatch(file);
        }

        if (log.IsDebugEnabled)
        {
            log.Debug("Setup done.");
        }
    }

    protected override void TearDown()
    {

    }
    #endregion
  }
}