Mensagens escritas no log podem ajudar a identificar problemas no seu código Verse. Estas mensagens podem ser visualizadas na aba de log dentro do jogo e na janela Output Log do UEFN.
Para escrever logs em Verse, você precisa usar duas classes: log e log_channel.
O log_channel é usado apenas para identificar a origem da mensagem. Seu nome é adicionado ao início da mensagem.
É necessário criar uma subclasse de log_channel no escopo de módulo, ou seja, fora de classes ou funções. O código abaixo mostra um exemplo de log_channel:
log_general := class(log_channel){}
O próximo passo é criar uma instância da classe log dentro de uma classe ou função, informando o log_channel que será utilizado:
LoggerGeneral:log = log{Channel:=log_general}
Existem 5 níveis de log que podem ser usados para categorizar a mensagem: Debug, Verbose, Normal, Warning e Error.
Logs com níveis Debug e Verbose aparecem apenas na aba de log dentro do jogo. Eles não aparecem no Output Log do UEFN.
Logs com níveis Warning e Error são exibidos em cores diferentes para chamar mais atenção.
É possível definir um nível padrão para um log no momento de sua criação:
LoggerGeneral:log = log{Channel:=log_general, DefaultLevel:=log_level.Warning}
Para escrever no log, use a função Print da classe log:
LoggerGeneral.Print("Experience started")
Você pode passar como parâmetro o nível de log da mensagem:
LoggerGeneral.Print("Data not found", ?Level := log_level.Error)
Outra informação útil na análise de problemas é o Call Stack (pilha de chamadas) que mostra as funções chamadas até chegar ao ponto atual do código. Use a função PrintCallStack da classe log para registrar o Call Stack.
LoggerGeneral.PrintCallStack()Para ilustrar o uso de logs, vamos criar um dispositivo que utiliza dois logs. Um deles será usado para mensagens gerais do sistema e o outro log será para registrar mensagens quando os botões forem pressionados pelo jogador. Serão usados diferentes níveis de log.
Abra o Verse Explorer, clique com o botão-direito no nome do projeto e escolha a opção Add new Verse file to project.
Em Device Name coloque log_example_device e clique no botão Create Empty.
Copie o código Verse abaixo para o dispositivo log_example_device:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
log_general := class(log_channel){}
log_buttons := class(log_channel){}
log_example_device := class(creative_device):
LoggerGeneral:log = log{Channel:=log_general}
LoggerButtons:log = log{Channel:=log_buttons,
DefaultLevel := log_level.Warning}
var BtnWarningCount: int = 0
var BtnErrorCount: int = 0
@editable
ButtonWarning : button_device = button_device{}
@editable
ButtonError : button_device = button_device{}
OnBegin<override>()<suspends>:void=
ButtonWarning.InteractedWithEvent.Subscribe(ButtonWarningPressed)
ButtonError.InteractedWithEvent.Subscribe(ButtonErrorPressed)
LoggerGeneral.Print("Experience started.")
ButtonWarningPressed(Agent:agent):void=
set BtnWarningCount += 1
LoggerButtons.Print("ButtonWarning was pressed {BtnWarningCount} times")
ButtonErrorPressed(Agent:agent):void=
set BtnErrorCount += 1
LoggerButtons.Print("ButtonError was pressed {BtnErrorCount} times",
?Level := log_level.Error)
LoggerButtons.PrintCallStack()
O dispositivo log_example_device possui dois button_device que serão usados para registrar mensagens no log quando forem pressionados. Um botão será usado para mensagens com o nível Warning e o outro para mensagens com o nível Error.
A função OnBegin registra, nos botões, as funções que serão chamadas quando eles forem pressionados e, em seguida, escreve uma mensagem no log usando o LoggerGeneral.
Salve o arquivo e compile o código Verse usando a opção Verse > Compile Verse Code do menu do UEFN.
Acesse o Content Drawer e adicione o dispositivo log_example_device ao nível. Em seguida, adicione dois Button Devices ao nível.
Selecione o log_example_device no nível. Na aba Details, selecione as referências aos botões que estão no nível.
Salve o nível e clique no botão Launch Session para carregar o nível no Fortnite. Pressione os botões algumas vezes. Em seguida, alterne para o UEFN e verifique no Output Log as mensagens registradas.


