Proper logging in game class

This commit is contained in:
AeonLucid committed 2020-10-23 00:28:29 +02:00
1 parent 574b7e23b4
commit e78329b9b1
6 files changed
+43 -20

No files matched your search

+1 -1
View File
@@ -149,7 +149,7 @@ namespace Impostor.Server.Net
var readerCopy = reader.Slice(reader.Position);
// TODO: Return value, either a bool (to cancel) or a writer (to cancel (null) or modify/overwrite).
// await Player.Game.HandleGameData(readerCopy, Player, toPlayer);
await Player.Game.HandleGameDataAsync(readerCopy, Player, toPlayer);
// Broadcast packet to all other players.
using (var writer = MessageWriter.Get(messageType))
+30 -11
View File
@@ -1,11 +1,13 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Impostor.Api.Innersloth.GameData;
using Impostor.Api.Net.Messages;
using Impostor.Server.GameData;
using Impostor.Server.GameData.Objects;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace Impostor.Server.Net.State
{
@@ -26,7 +28,19 @@ namespace Impostor.Server.Net.State
private readonly List<InnerNetObject> _allObjects = new List<InnerNetObject>();
private readonly Dictionary<uint, InnerNetObject> _allObjectsFast = new Dictionary<uint, InnerNetObject>();
public async ValueTask HandleGameData(IMessageReader parent, ClientPlayer sender, bool toPlayer)
private int _gamedataInitialized;
public void InitGameData()
{
if (Interlocked.Exchange(ref _gamedataInitialized, 1) != 0)
{
return;
}
}
public async ValueTask HandleGameDataAsync(IMessageReader parent, ClientPlayer sender, bool toPlayer)
{
// Find target player.
ClientPlayer target = null;
@@ -50,10 +64,15 @@ namespace Impostor.Server.Net.State
{
case GameDataTag.DataFlag:
{
if (_allObjectsFast.TryGetValue(reader.ReadPackedUInt32(), out var obj))
var netId = reader.ReadPackedUInt32();
if (_allObjectsFast.TryGetValue(netId, out var obj))
{
obj.Deserialize(reader, false);
}
else
{
_logger.LogWarning("Received DataFlag for unregistered NetId {0}.", netId);
}
break;
}
@@ -83,7 +102,7 @@ namespace Impostor.Server.Net.State
if (componentsCount != components.Count)
{
Logger.Error(
_logger.LogError(
"Children didn't match for spawnable {0}, name {1} ({2} != {3})",
objectId,
innerNetObject.GetType().Name,
@@ -101,7 +120,7 @@ namespace Impostor.Server.Net.State
if (!AddNetObject(obj))
{
Logger.Verbose("Failed to AddNetObject.");
_logger.LogTrace("Failed to AddNetObject.");
obj.NetId = uint.MaxValue;
break;
@@ -118,25 +137,25 @@ namespace Impostor.Server.Net.State
{
if (TryGetPlayer(id, out var clientById))
{
Logger.Verbose("Spawn character");
_logger.LogTrace("Spawn character");
}
else
{
Logger.Verbose("Spawn unowned character");
_logger.LogTrace("Spawn unowned character");
}
}
continue;
}
Logger.Error("Couldn't find spawnable object {0}.", objectId);
_logger.LogError("Couldn't find spawnable object {0}.", objectId);
break;
}
case GameDataTag.DespawnFlag:
{
var objectNetId = reader.ReadPackedUInt32();
Logger.Verbose("> Destroy {0}", objectNetId);
_logger.LogTrace("> Destroy {0}", objectNetId);
break;
}
@@ -144,20 +163,20 @@ namespace Impostor.Server.Net.State
{
var clientId = reader.ReadPackedInt32();
var targetScene = reader.ReadString();
Logger.Verbose("> Scene {0} to {1}", clientId, targetScene);
_logger.LogTrace("> Scene {0} to {1}", clientId, targetScene);
break;
}
case GameDataTag.ReadyFlag:
{
var clientId = reader.ReadPackedInt32();
Logger.Verbose("> IsReady {0}", clientId);
_logger.LogTrace("> IsReady {0}", clientId);
break;
}
default:
{
Logger.Debug("Bad GameData tag {0}", reader.Tag);
_logger.LogTrace("Bad GameData tag {0}", reader.Tag);
break;
}
}
@@ -4,6 +4,7 @@ using Impostor.Api.Innersloth.Data;
using Impostor.Api.Net;
using Impostor.Api.Net.Messages;
using Impostor.Hazel;
using Microsoft.Extensions.Logging;
namespace Impostor.Server.Net.State
{
@@ -122,7 +123,7 @@ namespace Impostor.Server.Net.State
public async ValueTask HandleKickPlayer(int playerId, bool isBan)
{
Logger.Information("{0} - Player {1} has left.", Code, playerId);
_logger.LogInformation("{0} - Player {1} has left.", Code, playerId);
using var message = MessageWriter.Get(MessageType.Reliable);
@@ -144,7 +145,7 @@ namespace Impostor.Server.Net.State
private async ValueTask HandleJoinGameNew(ClientPlayer sender, bool isNew)
{
Logger.Information("{0} - Player {1} ({2}) is joining.", Code, sender.Client.Name, sender.Client.Id);
_logger.LogInformation("{0} - Player {1} ({2}) is joining.", Code, sender.Client.Name, sender.Client.Id);
// Add player to the game.
if (isNew)
@@ -166,7 +167,7 @@ namespace Impostor.Server.Net.State
private async ValueTask HandleJoinGameNext(ClientPlayer sender, bool isNew)
{
Logger.Information("{0} - Player {1} ({2}) is rejoining.", Code, sender.Client.Name, sender.Client.Id);
_logger.LogInformation("{0} - Player {1} ({2}) is rejoining.", Code, sender.Client.Name, sender.Client.Id);
// Add player to the game.
if (isNew)
+3 -2
View File
@@ -6,6 +6,7 @@ using Impostor.Api.Innersloth.Data;
using Impostor.Api.Net;
using Impostor.Api.Net.Messages;
using Impostor.Hazel;
using Microsoft.Extensions.Logging;
namespace Impostor.Server.Net.State
{
@@ -35,7 +36,7 @@ namespace Impostor.Server.Net.State
return false;
}
Logger.Information("{0} - Player {1} ({2}) has left.", Code, player.Client.Name, playerId);
_logger.LogInformation("{0} - Player {1} ({2}) has left.", Code, player.Client.Name, playerId);
player.Client.Player = null;
@@ -79,7 +80,7 @@ namespace Impostor.Server.Net.State
}
HostId = host.Client.Id;
Logger.Information("{0} - Assigned {1} ({2}) as new host.", Code, host.Client.Name, host.Client.Id);
_logger.LogInformation("{0} - Assigned {1} ({2}) as new host.", Code, host.Client.Name, host.Client.Id);
// Check our current game state.
if (GameState == GameStates.Ended && host.Limbo == LimboStates.WaitingForHost)
+4 -2
View File
@@ -15,6 +15,7 @@ using Impostor.Hazel;
using Impostor.Server.Net.Hazel;
using Impostor.Server.Net.Manager;
using Impostor.Server.Net.Redirector;
using Microsoft.Extensions.Logging;
using Serilog;
using ILogger = Serilog.ILogger;
@@ -22,8 +23,7 @@ namespace Impostor.Server.Net.State
{
internal partial class Game : IGame
{
private static readonly ILogger Logger = Log.ForContext<Game>();
private readonly ILogger<Game> _logger;
private readonly IServiceProvider _serviceProvider;
private readonly GameManager _gameManager;
private readonly ClientManager _clientManager;
@@ -32,6 +32,7 @@ namespace Impostor.Server.Net.State
private readonly IEventManager _eventManager;
public Game(
ILogger<Game> logger,
IServiceProvider serviceProvider,
GameManager gameManager,
IPEndPoint publicIp,
@@ -40,6 +41,7 @@ namespace Impostor.Server.Net.State
ClientManager clientManager,
IEventManager eventManager)
{
_logger = logger;
_serviceProvider = serviceProvider;
_gameManager = gameManager;
_players = new ConcurrentDictionary<int, ClientPlayer>();
+1 -1
View File
@@ -43,7 +43,7 @@ namespace Impostor.Tools.ServerReplay
private static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.MinimumLevel.Verbose()
.WriteTo.Console()
.CreateLogger();