Struggling with logging

Options
DreadTalon
edited November 2014 in Photon Server
Hey, I have been through the thread reporting a similar problem, but the solution there hasn't worked for me.

I am extending LoadBalancing, and able to log and control the logging level for every module except my own game server.
using ExitGames.Logging;
using Lite;
using Photon.LoadBalancing.GameServer;
using Photon.SocketServer;
using System;
using System.Collections.Generic;
using Server.Serialization;

namespace Server {
	public class GameServer : GameApplication {

		private static ILogger logger = LogManager.GetCurrentClassLogger();

		public GameServer() : base() {

			logger.Info("Game Server Started.");

			Console.WriteLine("adjsfkasdjfkasdfjasdf");

			//Send plaintext
			logger.Info("your log message");

			//Send an exception
			logger.Error("your log message", new Exception());

			//Send a JSON object
			var items = new Dictionary<string, string>();
			items.Add("key1", "value1");
			items.Add("key2", "value2");
			logger.Info(items);
		}

		protected override PeerBase CreateGamePeer(InitRequest initRequest) {
			return new GamePeer(initRequest, this);
		}

		#region GameCache Overrides
		#endregion
	}
}
<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="false">

  <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}\\%property{LogFileName}.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}\\%property{LogFileName}Counter.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="INFO" />
    <appender-ref ref="LogFileAppender" />
    <appender-ref ref="ConsoleAppender" />
  </root>

  <logger name="Server.GameServer" additivity="false">
    <level value="INFO" />
    <appender-ref ref="LogFileAppender" />
  </logger>

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

  <logger name="Photon.SocketServer" additivity="false">
    <level value="INFO" />
    <appender-ref ref="LogFileAppender" />
  </logger>

  <logger name="Photon.LoadBalancing" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
  </logger>

  <logger name="Photon.LoadBalancing.LoadShedding" additivity="false">
    <level value="INFO" />
    <appender-ref ref="LogFileAppender" />
  </logger>

  <logger name="Photon.LoadBalancing.LoadBalancing" additivity="false">
    <level value="INFO" />
    <appender-ref ref="LogFileAppender" />
  </logger>

  <logger name="ExitGames.Messaging.Channels" additivity="false">
    <level value="INFO" />
    <appender-ref ref="LogFileAppender" />
  </logger>

  <logger name="ExitGames.Diagnostics" 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>

</log4net>

My log file is definitely being copied to the deploy directory and it is being read because I can change the log level for other modules. I am stumped here.

Comments

  • I have found that the logging does infact work - for every class except for ones which extend from MasterApplication or GameApplication. Is there a reason for this?
  • No, that sounds weird and is certainly not intended. I'll take a look. Thanks for reporting the issue!