2010-02-24 21 views
7

我在Windows計算機上運行ColdFusion 8應用程序服務器。 ColdFusion作爲Windows服務運行。我注意到文件在一些機器上很龐大(1GB +)。JRun/Coldfusion - System.out - 如何防止它變得太大?

例如

C:\ ColdFusion8 \運行\ BIN \ System.out的

我明白這是在控制檯輸出運行CF作爲服務時結束,但沒有任何的JRun設置讓我每隔x MB保存這個文件,或限制文件的大小或類似的東西?

所有提示讚賞!

重要編輯:

基礎上討論here - 我認爲有必要提及的是,System.out文件已經得到了我們的機器大,由於大量的代碼使用數據寫入該文件,即:

sys = createObject("java", "java.lang.System"); 
sys.out.println(...); 

如果您將CF作爲控制檯作業運行(即從命令行運行),這是一個有用的調試工具,因爲在使用<cflog />時,舊版CF不會登錄到控制檯。

我們要求我們的開發人員停止這種做法,而是使用<cflog />writeLog(),這兩者都登錄到控制檯以及應用程序日誌(默認情況下)。

回答

8

看起來,如果你去jrun.xml爲ColdFusion服務器文件並找到這樣一行:

<service class="jrunx.logger.ConsoleLogEventHandler" name=":service=ConsoleLogEventHandler" /> 

你應該能夠將這些位添加到它:

<attribute name="rotationSize">200k</attribute> 
    <attribute name="rotationFiles">3</attribute> 
    <!-- Use heading to specify an alternate log heading for system event log. --> 
    <!-- EXAMPLE: <attribute name="heading"># Created by JRun on {date MM/dd HH:mm:ss}</attribute> --> 
    <attribute name="closeDelay">5000</attribute> 
    <attribute name="deleteOnExit">false</attribute> 

然後按照您認爲合適的方式操作設置。但是according to this blog entry, you cannot change the name of the file

+0

對於Coldfusion日誌文件,實際上有一個 XML節點,您可以添加另一個具有唯一名稱的節點,並將其指向{jrun.rootdir} /bin/System.out以將該文件整理出來 - 魅力無窮! – 2010-02-26 10:33:13

+0

還有另一種方法:在應用程序中運行一些CF代碼以根據需要覆蓋文件。這有效,但似乎阻止CF追加到它之後。可能不適合每個人。 – 2011-03-03 13:50:06

+0

請參閱此處的註釋:http://www.carehart.org/blog/client/index.cfm/2010/10/15/controlling_size_of_CF_out_logs以獲得關於此的更全面討論 - 結果是停止使用System.out.println ()'並使用''或'writeLog()'來代替。 – 2011-03-14 15:13:14