Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Servermeldungen protokollieren (Amazon GameLift ServersRealtime)
Sie können benutzerdefinierte Servermeldungen aus Ihren Amazon GameLift Servers Realtime Protokolldateien erfassen. Weitere Informationen zur Protokollierung für benutzerdefinierte Server finden Sie unterServermeldungen protokollieren (benutzerdefinierte Server).
Es gibt verschiedene Arten von Meldungen, die Sie in Ihre Protokolldateien ausgeben können (sieheNachrichten in Ihrem Serverskript protokollieren). Zusätzlich zu Ihren benutzerdefinierten Meldungen geben Sie Systemmeldungen Amazon GameLift Servers Realtime aus, die dieselben Nachrichtentypen verwenden und in dieselben Protokolldateien schreiben. Sie können die Protokollierungsebene für Ihre Flotte anpassen, um die Anzahl der von Ihren Servern generierten Protokollmeldungen zu reduzieren (sieheAnpassung der Protokollierungsebene).
Wichtig
Die Größe einer Protokolldatei pro Spielsitzung ist begrenzt (siehe Amazon GameLift ServersEndpunkte und Kontingente im Allgemeine AWS-Referenz). Wenn eine Spielsitzung endet, werden die Serverprotokolle auf Amazon Simple Storage Service (Amazon S3) Amazon GameLift Servers hochgeladen. Amazon GameLift Serverslädt keine Protokolle hoch, die das Limit überschreiten. Protokolle können sehr schnell wachsen und die Größenbeschränkung überschreiten. Sie sollten Ihre Protokolle überwachen und die Protokollausgabe auf die erforderlichen Meldungen beschränken.
Nachrichten in Ihrem Serverskript protokollieren
Sie können benutzerdefinierte Nachrichten im Skript für Sie ausgeben Amazon GameLift ServersRealtime. Gehen Sie wie folgt vor, um Servermeldungen an eine Protokolldatei zu senden:
-
Erstellen Sie eine Variable, die den Verweis auf das Logger-Objekt enthält.
var logger;
-
Rufen Sie in der
init()
Funktion den Logger aus dem Sitzungsobjekt ab und weisen Sie ihn Ihrer Logger-Variablen zu.function init(rtSession) { session = rtSession; logger = session.getLogger(); }
-
Rufen Sie die entsprechende Funktion im Logger auf, um eine Nachricht auszugeben.
Nachrichten debuggen
logger.debug("This is my debug message...");
Informationsmeldungen
logger.info("This is my info message...");
Warnmeldungen
logger.warn("This is my warn message...");
Fehlermeldungen
logger.error("This is my error message...");
Schwerwiegende Fehlermeldungen
logger.fatal("This is my fatal error message...");
Kunden erleben fatale Fehlermeldungen
logger.cxfatal("This is my customer experience fatal error message...");
Ein Beispiel für die Protokollierung von Anweisungen in einem Skript finden Sie unterAmazon GameLift ServersRealtimeBeispiel für ein Skript.
Die Ausgabe in den Protokolldateien gibt den Nachrichtentyp (DEBUG
,,INFO
,WARN
, ERROR
FATAL
,CXFATAL
) an, wie in den folgenden Zeilen eines Beispielprotokolls dargestellt:
09 Sep 2021 11:46:32,970 [INFO] (gamelift.js) 215: Calling GameLiftServerAPI.InitSDK... 09 Sep 2021 11:46:32,993 [INFO] (gamelift.js) 220: GameLiftServerAPI.InitSDK succeeded 09 Sep 2021 11:46:32,993 [INFO] (gamelift.js) 223: Waiting for Realtime server to start... 09 Sep 2021 11:46:33,15 [WARN] (index.js) 204: Connection is INSECURE. Messages will be sent/received as plaintext.
Zugreifen auf Serverprotokolle
Wenn eine Spielsitzung endet, Amazon GameLift Servers werden die Protokolle automatisch in Amazon S3 gespeichert und 14 Tage lang aufbewahrt. Sie können den GetGameSessionLogUrl API-Aufruf verwenden, um den Speicherort der Protokolle für eine Spielsitzung abzurufen. Verwenden Sie die vom API-Aufruf zurückgegebene URL, um die Protokolle herunterzuladen.
Anpassung der Protokollierungsebene
Protokolle können sehr schnell wachsen und die Größenbeschränkung überschreiten. Sie sollten Ihre Protokolle überwachen und die Protokollausgabe auf die erforderlichen Meldungen beschränken. Denn Sie können die Protokollierungsebene anpassen Amazon GameLift ServersRealtime, indem Sie einen Parameter in der Laufzeitkonfiguration Ihrer Flotte in der Form angebenloggingLevel:
, in der es sich um einen der folgenden Werte LOGGING_LEVEL
handelt:LOGGING_LEVEL
-
debug
-
info
(Standard) -
warn
-
error
-
fatal
-
cxfatal
Diese Liste ist von der geringsten Schwere (debug
) bis zur höchsten Schwere (cxfatal
) geordnet. Sie legen einen Wert fest loggingLevel
und der Server protokolliert nur Nachrichten mit diesem oder einem höheren Schweregrad. Durch loggingLevel:error
diese Einstellung werden beispielsweise alle Server in Ihrer Flotte nur cxfatal
Nachrichten vom Typ error
fatal
, und in das Protokoll schreiben.
Sie können die Protokollierungsebene für Ihre Flotte festlegen, wenn Sie sie erstellen oder nachdem sie ausgeführt wird. Wenn du den Log-Level deiner Flotte nach dem Start änderst, wirkt sich das nur auf die Logs von Spielsitzungen aus, die nach dem Update erstellt wurden. Logs für bestehende Spielsitzungen sind davon nicht betroffen. Wenn du bei der Erstellung deiner Flotte keine Protokollierungsebene festlegst, setzen deine Server die Protokollierungsebene info
standardmäßig auf. Anweisungen zum Einstellen der Protokollierungsebene finden Sie in den folgenden Abschnitten.
Einstellung der Protokollierungsebene bei der Erstellung einer Amazon GameLift ServersRealtime Flotte (Konsole)
Folgen Sie den Anweisungen unterErstellen Sie eine Amazon GameLift Servers verwaltete EC2 Flotte, um Ihre Flotte zu erstellen, mit dem folgenden Zusatz:
-
Geben Sie im Unterschritt Serverprozesszuweisung des Schritts Prozessmanagement das Schlüssel-Wert-Paar (z. B.
loggingLevel:error
) auf der Protokollierungsebene als Wert für Startparameter an. Verwenden Sie ein nicht alphanumerisches Zeichen (außer Komma), um die Protokollierungsebene von allen zusätzlichen Parametern zu trennen (z. B.).loggingLevel:error +map Winter444
Einstellung der Protokollierungsebene bei der Erstellung einer Amazon GameLift ServersRealtime Flotte ()AWS CLI
Folgen Sie den Anweisungen unterErstellen Sie eine Amazon GameLift Servers verwaltete EC2 Flotte, um Ihre Flotte zu erstellen, mit dem folgenden Zusatz:
-
Geben Sie im Argument des
--runtime-configuration
Parameters forcreate-fleet
das Schlüssel-Wert-Paar (z. B.loggingLevel:error
) der Protokollierungsebene als Wert für an.Parameters
Verwenden Sie ein nicht-alphanumerisches Zeichen (außer Komma), um die Protokollierungsebene von allen zusätzlichen Parametern zu trennen. Sehen Sie sich das folgende Beispiel an:
--runtime-configuration "GameSessionActivationTimeoutSeconds=60, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=/local/game/myRealtimeLaunchScript.js, Parameters=loggingLevel:error +map Winter444, ConcurrentExecutions=10}]"
Einstellung der Protokollierungsebene für eine laufende Amazon GameLift ServersRealtime Flotte (Konsole)
Folgen Sie den Anweisungen unterEine Amazon GameLift Servers Flottenkonfiguration aktualisieren, um Ihre Flotte mithilfe der Amazon GameLift Servers Konsole zu aktualisieren, mit dem folgenden Zusatz:
-
Geben Sie auf der Seite Flotte bearbeiten unter Serverprozesszuweisung das Schlüssel-Wert-Paar (z. B.
loggingLevel:error
) auf der Protokollierungsebene als Wert für Startparameter an. Verwenden Sie ein nicht-alphanumerisches Zeichen (außer Komma), um die Protokollierungsebene von allen zusätzlichen Parametern zu trennen (z. B.).loggingLevel:error +map Winter444
Einstellung der Protokollierungsebene für eine laufende Amazon GameLift ServersRealtime Flotte ()AWS CLI
Folgen Sie den Anweisungen unterEine Amazon GameLift Servers Flottenkonfiguration aktualisieren, um Ihre Flotte mit dem zu aktualisieren AWS CLI, mit dem folgenden Zusatz:
-
Geben Sie im Argument des
--runtime-configuration
Parameters forupdate-runtime-configuration
das Schlüssel-Wert-Paar (z. B.loggingLevel:error
) der Protokollierungsebene als Wert für an.Parameters
Verwenden Sie ein nicht-alphanumerisches Zeichen (außer Komma), um die Protokollierungsebene von allen zusätzlichen Parametern zu trennen. Sehen Sie sich das folgende Beispiel an:
--runtime-configuration "GameSessionActivationTimeoutSeconds=60, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=/local/game/myRealtimeLaunchScript.js, Parameters=loggingLevel:error +map Winter444, ConcurrentExecutions=10}]"