2016-04-03 15 views
3

Günlüğe kaydetme bileşenimi istediğim gibi çalışmaya çalışıyorum.Kuruluş Kütüphanesi Günlüğe Kaydetme ve Metin Biçimlendirme Şablonu Simgeleri. Nasıl?

<formatters> 
    <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="Application: {property(ApplicationName)}{newline}&#xA;Guid: {property(HandlingInstanceId)}{newline}&#xA;Timestamp: {timestamp}{newline}&#xA;Message: {message}{newline}&#xA;Exception type: {property(ExceptionType)}{newline}&#xA;Category: {category}{newline}&#xA;Severity: {severity}{newline}&#xA;Machine: {localMachine}{newline}&#xA;App Domain: {localAppDomain}{newline}&#xA;ProcessId: {localProcessId}{newline}&#xA;Process Name: {localProcessName}{newline}&#xA;Stack trace: {property(StackTrace)}{newline}&#xA;File: {property(FileName)}{newline}&#xA;Line: {property(LineNumber)}{newline}" 
    name="Text Formatter" /> 
</formatters> 

nasıl kullanmayı bilmiyorum "Metin Formatter Şablon Simgelerinizi" içerir: Ben bu yazı How to configure Enterpise Library 6.0 logging to database?

rastladı zaman o Formatter keşfetti? Şu anda

"Stack trace: {property(StackTrace)}{newline}&#xA" 

Benim günlüğü sınıfı şöyle görünür:

public class Logging : Microsoft.Practices.EnterpriseLibrary.Logging.LogEntry 
{  
    /// <summary> 
    /// Logs an error message. 
    /// </summary> 
    /// <param name="Message"></param> 
    /// <param name="processEvent"></param> 
    public void LogToFile(string message, System.Diagnostics.TraceEventType severity) 
    { 
     try 
     { 
      LogWriterFactory logWriterFactory = new LogWriterFactory(); 
      LogWriter logWriter = logWriterFactory.Create(); 
      LogEntry logEntry = new LogEntry(); 
      LogSource logsource = new LogSource("ESRAlarmStatistik"); 

      logEntry.Message = message.ToString(); 
      //logEntry.EventId = Convert.ToInt32(processEvent); 
      logEntry.Priority = 2; 
      logEntry.Severity = severity; 
      logEntry.TimeStamp = System.DateTime.Now; 

      logWriter.Write(logEntry); 

      //Unlocks the logfile so that it's possible to delete it. 
      logWriter.Dispose(); 
     } 
     catch (LoggingException ex) 
     { 
      throw ex; 
     } 
    } 
} 

Sadece mesajın daha durum hakkında daha fazla bilgi log istiyorum. Örneğin. Metin Biçimlendirici Şablonu Token önerisi gibi yığın izlemesi mümkündür.

Ancak, bunu nasıl yapacağımı bilmiyorum? Yukarıdaki gibi bir metin biçimlendiriciye nasıl destek uygulanacağı konusunda herhangi bir deneyim var mı?

günlük çıkış an şuna benzer:

---------------------------------------- 
Application: <Error: property ApplicationName not found> 

Guid: <Error: property HandlingInstanceId not found> 

Timestamp: 2016-04-03 10:16:20 

Message: IngresDatabaseAccessor.DBConnect() - Database connection failed. Connection string: Host=192.168.0.114;User Id=ingres;PWD=ingres;Database=esra_bas---Database does not exist: 'esrk_bas'. 
The connection to the server has been aborted. 

Exception type: <Error: property ExceptionType not found> 

Category: General 

Severity: Error 

Machine: KSD53 

App Domain: ESRAlarmStatistik.exe 

ProcessId: 15464 

Process Name: C:\DATA\Development\Uddeholm\ESR\Source\Common\ESRAlarmStatistik\ESRAlarmStatistik\bin\Debug\ESRAlarmStatistik.exe 

Stack trace: <Error: property StackTrace not found> 

File: <Error: property FileName not found> 

Line: <Error: property LineNumber not found> 

---------------------------------------- 

Saygılarımla!

P. Ben senin

LogEntry logEntry = new LogEntry(); 

gibi Enterprise Library 6.0

cevap

0

o görünüyor kullanıyorum does not biçimlendiricisine tarafından talep özellikler içerir:

logEntry.StackTrace = "missing Informaton in your LogToFile Method" 

Yani bence, bu genişletmek zorundayız.

İlgili konular