Outro dia eu estava navegando e achei um post bem interessante, que é sobre gravar no Event Log do windows entradas geradas pelo AX 2009 e resolvi traduzir e publicar aqui.

Abaixo a tradução e alguns comentários:

Nosso cliente requisitou manter uma lista com todos os erros de sistema gerados pelo Dynamics AX durente os testes de aceitação. Eu usei o “application event logs” para guardar a informação.

O código abaixo mostra como você insere uma entrada no Event Log no X++:

Crie uma nova classe, chamada AX_EventLog, com um método estático chamado WriteEventLog:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
static void WriteEventLog(Exception _exception, str _event)
{
  str eventSource = "AX event";
  str logType = "Application";
  System.Diagnostics.EventLogEntryType eventLogEntryType;
  int eventCategory = 9999;
  ; 
 
  switch(_exception)
  {
    case Exception::Info:
      eventLogEntryType = System.Diagnostics.EventLogEntryType::Information;
      break;
    case Exception::Warning:
      eventLogEntryType = System.Diagnostics.EventLogEntryType::Warning;
      break; 
    default:
      eventLogEntryType = System.Diagnostics.EventLogEntryType::Error;
  }
 
  if (!System.Diagnostics.EventLog::Exists(eventSource))
    System.Diagnostics.EventLog::CreateEventSource(eventSource, logType);
 
  System.Diagnostics.EventLog::WriteEntry(eventSource, _event, eventLogEntryType, eventCategory);
}

O código acima recebe como paramêtro uma excessão e também uma string com o evento e faz a inserção no Event Log.

Agora faremos uma adaptação no método add() da classe Info, que é o responsável por adicionar os eventos na janela de info.

1
2
3
4
5
6
7
8
9
10
11
Exception add(
  Exception _exception,
  str _txt,
  str _helpUrl = '',
  SysInfoAction _sysInfoAction = null,
  boolean buildprefix = true)
{
  …
  AX_EventLog::WriteEventLog(_exception, _txt);
  … 
}

Com isso você não precisa fazer mais nada, porque como toda excessão passa pelo método add() da classe Info, automaticamente tudo será logado.

É isso ai, ta resolvido o problema.

[]s
Pichler

Fonte: http://fredshen.spaces.live.com/Blog/cns!B32E9346DBBAE4E3!345.entry