added if checks to some debug logs

This commit is contained in:
Alex
2025-01-27 21:10:44 +00:00
parent 7017f73d2e
commit b7b5b7da34
9 changed files with 93 additions and 37 deletions
+19 -13
View File
@@ -15,6 +15,7 @@ using Core.Services;
using Core.Utils;
using Core.Utils.Cloners;
using SptCommon.Extensions;
using LogLevel = Core.Models.Spt.Logging.LogLevel;
namespace Core.Controllers;
@@ -102,7 +103,8 @@ public class BotController(
{
// No bot of this type found, copy details from assault
result[botTypeLower] = result["assault"];
_logger.Debug($"Unable to find bot: {botTypeLower} in db, copying 'assault'");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Unable to find bot: {botTypeLower} in db, copying 'assault'");
continue;
}
@@ -201,15 +203,17 @@ public class BotController(
if (botCacheCount >= botGenerationDetails.BotCountToGenerate)
{
_logger.Debug($"Cache already has sufficient {cacheKey} bots: {botCacheCount}");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Cache already has sufficient {cacheKey} bots: {botCacheCount}");
return;
}
// We're below desired count, add bots to cache
var botsToGenerate = botGenerationDetails.BotCountToGenerate - botCacheCount;
var progressWriter = new ProgressWriter(botGenerationDetails.BotCountToGenerate.GetValueOrDefault(30));
_logger.Debug($"Generating {botsToGenerate} bots for cacheKey: {cacheKey}");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Generating {botsToGenerate} bots for cacheKey: {cacheKey}");
for (var i = 0; i < botsToGenerate; i++)
{
@@ -225,10 +229,11 @@ public class BotController(
// }
}
_logger.Debug(
$"Generated {botGenerationDetails.BotCountToGenerate} {botGenerationDetails.Role}" +
$"({botGenerationDetails.EventRole ?? botGenerationDetails.Role ?? ""}) {botGenerationDetails.BotDifficulty}bots"
);
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug(
$"Generated {botGenerationDetails.BotCountToGenerate} {botGenerationDetails.Role}" +
$"({botGenerationDetails.EventRole ?? botGenerationDetails.Role ?? ""}) {botGenerationDetails.BotDifficulty}bots"
);
}
private List<BotBase> ReturnSingleBotFromCache(string sessionId, GenerateBotsRequestData request)
@@ -313,11 +318,12 @@ public class BotController(
{
// No bot in cache, generate new and store in cache
GenerateSingleBotAndStoreInCache(botGenerationDetails, sessionId, cacheKey);
_logger.Debug(
$"Generated {botGenerationDetails.BotCountToGenerate} " +
$"{botGenerationDetails.Role} ({botGenerationDetails.EventRole ?? ""}) {botGenerationDetails.BotDifficulty} bots"
);
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug(
$"Generated {botGenerationDetails.BotCountToGenerate} " +
$"{botGenerationDetails.Role} ({botGenerationDetails.EventRole ?? ""}) {botGenerationDetails.BotDifficulty} bots"
);
}
var desiredBot = _botGenerationCacheService.GetBot(cacheKey);
+5 -2
View File
@@ -12,6 +12,7 @@ using Core.Services;
using Core.Utils;
using Core.Utils.Cloners;
using BodyPart = Core.Models.Eft.Common.Tables.BodyPart;
using LogLevel = Core.Models.Spt.Logging.LogLevel;
namespace Core.Generators;
@@ -322,7 +323,8 @@ public class BotGenerator(
if (!experiences.TryGetValue(botDifficulty.ToLower(), out var result))
{
_logger.Debug($"Unable to find experience: {botDifficulty} for {role} bot, falling back to `normal`");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Unable to find experience: {botDifficulty} for {role} bot, falling back to `normal`");
return _randomUtil.GetDouble(experiences["normal"].Min.Value, experiences["normal"].Max.Value);
}
@@ -479,7 +481,8 @@ public class BotGenerator(
public void LogPmcGeneratedCount(List<BotBase> output)
{
var pmcCount = output.Aggregate(0, (acc, cur) => { return cur.Info.Side is "Bear" or "Usec" ? acc + 1 : acc; });
_logger.Debug($"Generated {output.Count} total bots. Replaced {pmcCount} with PMCs");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Generated {output.Count} total bots. Replaced {pmcCount} with PMCs");
}
/// <summary>
@@ -10,6 +10,7 @@ using Core.Models.Utils;
using Core.Servers;
using Core.Services;
using Core.Utils;
using LogLevel = Core.Models.Spt.Logging.LogLevel;
namespace Core.Generators;
@@ -342,7 +343,8 @@ public class BotInventoryGenerator(
if (!tacVestsWithArmor.Any())
{
_logger.Debug($"Unable to filter to only armored rigs as bot: {botRole} has none in pool");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Unable to filter to only armored rigs as bot: {botRole} has none in pool");
return;
}
@@ -365,7 +367,8 @@ public class BotInventoryGenerator(
if (!allowEmptyResult && !tacVestsWithoutArmor.Any())
{
_logger.Debug($"Unable to filter to only unarmored rigs as bot: {botRole} has none in pool");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Unable to filter to only unarmored rigs as bot: {botRole} has none in pool");
return;
}
@@ -420,7 +423,8 @@ public class BotInventoryGenerator(
if (!dbResult.Key)
{
_logger.Error(_localisationService.GetText("bot-missing_item_template", chosenItemTpl));
_logger.Debug($"EquipmentSlot-> {settings.RootEquipmentSlot}");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"EquipmentSlot-> {settings.RootEquipmentSlot}");
// Remove picked item
settings.RootEquipmentPool.Remove(chosenItemTpl);
+23 -18
View File
@@ -9,6 +9,7 @@ using Core.Models.Utils;
using Core.Services;
using Core.Servers;
using Core.Utils.Cloners;
using LogLevel = Core.Models.Spt.Logging.LogLevel;
namespace Core.Generators;
@@ -530,18 +531,20 @@ public class BotLootGenerator(
if (itemAddedResult == ItemAddedResult.NO_CONTAINERS)
{
// Bot has no container to put item in, exit
_logger.Debug($"Unable to add: {totalItemCount} items to bot as it lacks a container to include them");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Unable to add: {totalItemCount} items to bot as it lacks a container to include them");
break;
}
fitItemIntoContainerAttempts++;
if (fitItemIntoContainerAttempts >= 4)
{
_logger.Debug(
$"Failed placing item: {itemToAddTemplate.Name}: {i} of: {totalItemCount} items into: {botRole} " +
$"containers: {string.Join(",", equipmentSlots)}. Tried: {fitItemIntoContainerAttempts} " +
$"times, reason: {itemAddedResult}, skipping"
);
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug(
$"Failed placing item: {itemToAddTemplate.Name}: {i} of: {totalItemCount} items into: {botRole} " +
$"containers: {string.Join(",", equipmentSlots)}. Tried: {fitItemIntoContainerAttempts} " +
$"times, reason: {itemAddedResult}, skipping"
);
break;
}
@@ -697,7 +700,8 @@ public class BotLootGenerator(
if (result != ItemAddedResult.SUCCESS)
{
_logger.Debug($"Failed to add additional weapon {generatedWeapon.Weapon[0].Id} to bot backpack, reason: {result.ToString()}");
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug($"Failed to add additional weapon {generatedWeapon.Weapon[0].Id} to bot backpack, reason: {result.ToString()}");
}
}
}
@@ -763,17 +767,18 @@ public class BotLootGenerator(
// Prevent edge-case of small loot pools + code trying to add limited item over and over infinitely
if (itemSpawnLimits.CurrentLimits[idToCheckFor] > itemSpawnLimits.CurrentLimits[idToCheckFor] * 10)
{
_logger.Debug(
_localisationService.GetText(
"bot-item_spawn_limit_reached_skipping_item",
new
{
botRole = botRole,
itemName = itemTemplate.Name,
attempts = itemSpawnLimits.CurrentLimits[idToCheckFor]
}
)
);
if(_logger.IsLogEnabled(LogLevel.Debug))
_logger.Debug(
_localisationService.GetText(
"bot-item_spawn_limit_reached_skipping_item",
new
{
botRole = botRole,
itemName = itemTemplate.Name,
attempts = itemSpawnLimits.CurrentLimits[idToCheckFor]
}
)
);
return false;
}
@@ -2,12 +2,14 @@
public enum LogLevel
{
Fatal,
Error,
Warn,
Success,
Info,
Custom,
Debug
Debug,
Trace
}
// TODO: needs to be moved to enums namespace
@@ -1,4 +1,5 @@
using Core.Models.Logging;
using LogLevel = Core.Models.Spt.Logging.LogLevel;
namespace Core.Models.Utils;
@@ -14,4 +15,5 @@ public interface ISptLogger<T>
void Debug(string data, Exception? ex = null);
void Critical(string data, Exception? ex = null);
void WriteToLogFile(string body);
bool IsLogEnabled(LogLevel level);
}
+22
View File
@@ -2,6 +2,7 @@ using SptCommon.Annotations;
using Core.Models.Eft.ItemEvent;
using Core.Models.Logging;
using Core.Models.Utils;
using LogLevel = Core.Models.Spt.Logging.LogLevel;
namespace Server.Logger;
@@ -88,4 +89,25 @@ public class SptWebApplicationLogger<T> : ISptLogger<T>
//TODO - implement + turn object into json
_logger.LogError("NOT IMPLEMENTED - WriteToLogFile");
}
public bool IsLogEnabled(LogLevel level)
{
return _logger.IsEnabled(ConvertLogLevel(level));
}
protected Microsoft.Extensions.Logging.LogLevel ConvertLogLevel(LogLevel level)
{
return level switch
{
LogLevel.Trace => Microsoft.Extensions.Logging.LogLevel.Trace,
LogLevel.Debug => Microsoft.Extensions.Logging.LogLevel.Debug,
LogLevel.Success
or LogLevel.Info
or LogLevel.Custom => Microsoft.Extensions.Logging.LogLevel.Information,
LogLevel.Warn => Microsoft.Extensions.Logging.LogLevel.Warning,
LogLevel.Error => Microsoft.Extensions.Logging.LogLevel.Error,
LogLevel.Fatal => Microsoft.Extensions.Logging.LogLevel.Critical,
_ => throw new ArgumentOutOfRangeException(nameof(level), level, null)
};
}
}
+6
View File
@@ -1,4 +1,5 @@
using Core.Models.Logging;
using Core.Models.Spt.Logging;
using Core.Models.Utils;
using SptCommon.Annotations;
@@ -53,4 +54,9 @@ public class SptBasicLogger<T> : ISptLogger<T>
{
Console.WriteLine($"{categoryName}: {body}");
}
public bool IsLogEnabled(LogLevel level)
{
return true;
}
}
+6
View File
@@ -1,4 +1,5 @@
using Core.Models.Logging;
using Core.Models.Spt.Logging;
using Core.Models.Utils;
namespace UnitTests.Mock;
@@ -55,6 +56,11 @@ public class MockLogger<T> : ISptLogger<T>
throw new NotImplementedException();
}
public bool IsLogEnabled(LogLevel level)
{
return true;
}
public void WriteToLogFile(object body)
{
Console.WriteLine(body);