Journaux en temps réel
Cette fonctionnalité est très utile, notamment lors des phases de test si vous avez un système intégré de signalement de bugs.
Votre système pourrait intégrer directement les journaux dans le rapport de bug. N’oubliez pas de demander le consentement de l’utilisateur via une case à cocher, par exemple :
Signaler un bug dans l’un de mes jeux
Windows
public void SendLog()
{
// Obtenir PlayerLog
var logPath = Path.Combine(Environment.GetEnvironmentVariable("AppData"), "..", "LocalLow", Application.companyName, Application.productName, "Player.log");
// Obtenir PlayerPrevLog
var preLogPath = Path.Combine(Environment.GetEnvironmentVariable("AppData"), "..", "LocalLow", Application.companyName, Application.productName, "Player-prev.log");
// Lire si le fichier existe
if (File.Exists(logPath))
{
string logs = ReadShareFile(logPath);
}
}
// Les journaux sont des fichiers partagés que nous pouvons lire avec cette fonction
private string ReadShareFile(string path)
{
using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var textReader = new StreamReader(fileStream))
{
return textReader.ReadToEnd();
}
}
Linux
var pathLinux = CombinePaths("~/.config/unity3d", Application.companyName, Application.productName, "Player.log");
Mac
var pathMac = CombinePaths("~/Library/Logs", Application.companyName, Application.productName, "Player.log");
Pour Android et iOS, la collecte directe de journaux n’est pas possible. Le code natif doit être utilisé. Cependant, en tant qu’alternative, vous pouvez vous abonner à un événement de message de journal, pour ensuite les stocker : Application.logMessageReceived
.
Ou bien, vous pouvez créer votre propre système de journaux, comme un Logger.
Illustration principale originale par Daniel Neiva Dan Neiva de Pixabay.