2011-08-22 5 views

답변

1
<configSections> 
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /> 
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /> 
    </configSections> 
    <!--Flat File Trace Listener--> 

    <loggingConfiguration name="Logging Application Block" tracingEnabled="true" defaultCategory="Default Category" logWarningsWhenNoCategoriesMatch="true"> 
    <listeners> 
     <add source="Enterprise Library Logging" formatter="Text Formatter" 
     log="Application" machineName="" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     traceOutputOptions="None" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     name="Formatted EventLog TraceListener" /> 
     <add fileName="D:\Works\GPIH\GPIAgent\Web\Log\Logger.log" 
     formatter="One Line Formatter" rollFileExistsBehavior="Increment" 
     rollInterval="Midnight" rollSizeKB="10000" timeStampPattern="yyyy-MM-dd" 
     listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     traceOutputOptions="None" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     name="Rolling Flat File" /> 
    </listeners> 
    <formatters> 

     <add template="Timestamp: {timestamp}{newline}&#xA;Message: {message}{newline}&#xA;Category: {category}{newline}&#xA;Machine: {localMachine}{newline}&#xA;App Domain: {localAppDomain}{newline}" 
     type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     name="Text Formatter" /> 
     <add template="{timestamp(local)} Cat: {category} Pri: {priority} EId: {eventid} Sev: {severity} {message} Title:{title} Machine: {machine} Application Domain: {appDomain} Process Id: {processId} Process Name: {processName} Win32 Thread Id: {win32ThreadId} Thread Name: {threadName} Extended Properties: {dictionary({key} - {value} 

)}" 
     type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     name="One Line Formatter" /> 
    </formatters> 
    <logFilters> 
     <add name="LogEnabled Filter" 
     type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.LogEnabledFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     enabled="true" /> 
    </logFilters> 
    <categorySources> 
     <add switchValue="Warning" name="Default Category"> 
     <listeners> 
      <add name="Formatted EventLog TraceListener" /> 
     </listeners> 
     </add> 
    </categorySources> 
    <specialSources> 
     <allEvents switchValue="All" name="All Events"> 
     <listeners> 
      <add name="Rolling Flat File" /> 
     </listeners> 
     </allEvents> 
     <errors switchValue="All" name="Logging Errors &amp; Warnings"> 
     <listeners> 
      <add name="Formatted EventLog TraceListener" /> 
     </listeners> 
     </errors> 
    </specialSources> 
    </loggingConfiguration> 
1

예 (Enterprise-Library와 함께 제공되는 TraceListeners에는 포함되지만 포함되지 않음). 필요한 것은 커스텀 TraceListener이거나 적어도 트레이스 리스너 팩토리 (GetCreationExpression)로서 간접적으로 사용되는 TraceListenerData입니다.

당신이 기술 한 가장 쉬운 방법은 RollingFlatFileTraceListenerData에서 상속 받고 GetCreationExpression을 오버라이드하는 것입니다. 그것은 당신이 원하는대로 설정할 수있는 this.FileName 보호 필드가 있습니다. 예를 들어, 당신은 사용자 정의 토큰 (타임 스탬프)

/// <summary> 
    /// Returns a lambda expression that represents the creation of the trace listener described by this 
    /// configuration object. 
    /// </summary> 
    /// <returns>A lambda expression to create a trace listener.</returns> 
    protected override Expression<Func<TraceListener>> GetCreationExpression() 
    { 
     // Resolve tokens in FileName 
     string fileName = ResolveTokens(this.FileName); 

     return 
      () => 
       new RollingFlatFileTraceListener(
        fileName, 
        this.Header, 
        this.Footer, 
        Container.ResolvedIfNotNull<ILogFormatter>(this.Formatter), 
        this.RollSizeKB, 
        this.TimeStampPattern, 
        this.RollFileExistsBehavior, 
        this.RollInterval, 
        this.MaxArchivedFiles); 
    } 

그리고 구성 해결할 수 :

<add name="All Activities Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
listenerDataType="Sample.CustomFlatFileTraceListenerData, Sample" 
fileName="%TEMP%\{timestamp}.log" 
footer="" formatter="Detail Text Formatter" rollFileExistsBehavior="Overwrite" 
rollInterval="Day" timeStampPattern="yyyy-MM-dd" maxArchivedFiles="10" /> 
+0

감사합니다,하지만 그는하지 않았다; P는 :( –

관련 문제