2015-11-02 48 views
2

我使用log4net的在我的窗口服務記錄,它工作正常在XP,7,8,Windows Server 2003的log4net的日誌不會得到更新Windows Server 2012中,直到重新啓動服務

但說到到Windows 2012服務器(也包含SQL Server 2012)log4net不記錄/更新日誌。

在Windows服務中執行某些操作後日志文件未更新。它需要重新啓動Windows服務才能更新日誌。只有在服務重新啓動後才能看到最近/最近的日誌。

 <log4net> 
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="Log\MyLog_" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Date" /> 
    <datePattern value="yyyyMMdd.lo\g" /> 
    <maxSizeRollBackups value="6" /> 
    <staticLogFileName value="false" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <!--<conversionPattern value="%date %level %logger - %message%newline%exception"/>--> 
    <param name="ConversionPattern" value="%date %-5level %-60logger - %-10message%newline%exception" /> 
    </layout> 
</appender> 
<appender name="SnFApp" type="log4net.Appender.RollingFileAppender"> 
    <file value="Log\MyLog1_" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Date" /> 
    <datePattern value="yyyyMMdd.lo\g" /> 
    <maxSizeRollBackups value="6" /> 
    <staticLogFileName value="false" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <!--<conversionPattern value="%date %level %logger - %message%newline%exception"/>--> 
    <param name="ConversionPattern" value="%date %-5level %-60logger - %-10message%newline%exception" /> 
    </layout> 
</appender> 
<logger name="TransactionManager.SaFManager.ClCCTaMPOSSaFManager"> 
    <appender-ref ref="SnFApp" /> 
</logger> 
<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingFileAppender" /> 
</root> 
<logger name="Log4NetTest.OtherClass"> 
    <level value="DEBUG" /> 
    <appender-ref ref="ConsoleAppender" /> 
</logger> 

+2

你能否提供記錄器配置? – starteleport

+0

在我的問題中添加了log4net配置,無法在此添加。 –

回答

0

看來你看到的Windows 2012服務器上的以下行爲,記錄工作,不僅是更新文件的時間戳:

file-date-modified-property-are-not-updating-while-modifying-a-file-without-closing-it

這些天,我們正在監測這個問題:當時正在開發一個 實用程序,用於在更新日誌文件時對其進行監視。

2003年,在資源管理器中打開日誌文件夾,你可以看到在你眼前的 時間戳和文件大小改變每個日誌 更新時間。

2008年,「上次修改」沒有更新的日誌文件,除非現場另一 程序試圖打開該文件或程序停止, 即使F5按刷新視圖。

資源管理器獲取來自NTFS的信息,通過使用cmd提示符和 「dir」,我們發現文件的NTFS元數據未更新 ,直到文件的句柄關閉。

+0

感謝您分享的鏈接。 它只是表示實用程序是否正在寫入日誌文件(由實用程序打開),並且由於日誌文件大小沒有發生變化以及修改日期也未更新。這不是實用程序的問題,而是操作系統功能引起的。 –

1

就我而言,它默認鎖定文件。如果這有幫助,你可以試試嗎?

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

我們已經得到了它運行的2012服務器上,也沒有這個問題。

+0

starteleport,你說「它默認鎖定文件」,那麼它應該在所有平臺上表現相同,對吧?但它工作正常,日誌文件在2003年得到更新。 如果我們必須嘗試以上,那麼你可以讓我知道我應該在哪裏放置標籤 –

+0

@SujeetSaste:將其放在相應的'' – starteleport

+0

好吧會檢查它。目前我沒有相同的環境可供測試。在這裏更新一次有機會測試它。 –

相關問題