2013-02-13 26 views
0

我目前在我的代碼中有很多log.info()行。現在我想知道是否有一種方法可以在不更改代碼中的所有行的情況下爲該行添加額外的變量。例如,假設我有這樣的事情在我的代碼在不改變實際行的情況下向log.info追加文本

int trackno; 
log.info("Object has passed stage 1"); 
log.info("Object has passed stage 2"); 
... 

現在是在那裏我可以打印在日誌中trackno不改變實際的日誌代碼的任何方式。我期待這樣做

log.info("Object has passed stage 1 - Trackno = " + trackno); 
+0

你只是改變傳入log.info方法的參數,而不是改變日誌代碼。你爲什麼不想改變論點? – 2013-02-13 18:38:52

+0

因爲我的文檔上有很多行很耗時。我只是好奇,如果有更好的方法。 – MistyD 2013-02-13 18:40:05

+1

您可以隨時在log.Info類中進行擴展並添加一個可選參數,因此您只需更改需要額外信息的參數即可。 – Charles380 2013-02-13 20:35:39

回答

1

你可以嘗試像的另一種方式......

log.Info(string.format("Object has passed stage {0}",trackno.toString())); 
+0

我更喜歡使用'log.InfoFormat(「Object has passed stage {0}」,trackno);'。我知道你說過你不想改變日誌代碼,但不知道有沒有辦法解決這個問題。或者,如果您想要在每條日誌消息中記錄某些內容,則可以使用ThreadContext變量。 – 2013-02-16 21:44:34

0

你可以換一種方法周圍的聲明如下所示:

private void LogInfoObjectPassed(int trackno, int stage) 
{ 
    log.info("Object has passed stage " + stage + " - Trackno = " + trackno); 
} 
相關問題