我正在四處尋找縮進我的日誌語句的方法。 經過一些Google搜索和搜索後,我在我的包裝器中實現了一個Indent類,用於處理記錄器語句的log4net。C#在函數上重載++運算符
現在我需要調用thees方法來增加和減少縮進。
_logger.Indent.Increase();
_logger.Debug(msg);
...
_logger.Indent.Decrease();
但是在每個函數裏面都有那兩個額外的行等污染了代碼imo。是否有一些語法糖果的方式來以更好的方式做到這一點,或者我應該以完全不同的方式做到這一點?
在任何情況下,這將是很好的! :P
_logger.Debug(msg)++; //Increase indent for this logger statement and all to come.
_logger.Debug(msg)--; //Decrease Indent and logg...
我也剛剛過來另一個問題,我使用IoC Ninject,記錄器是InSingeltonScope();但它的確與靜態全局單例不同,因爲內部的indentCount在構造函數中需要使用記錄器的每個新類中被重置爲0。:/ – furier
什麼約定將'++'定義爲縮進和'--'作爲unindent?我強烈建議你不要走這條路,因爲它會導致難以理解和維護代碼。未來的開發人員遇到你的代碼,並看到所有這些「++」和「 - 」運算符都可能有一個WTF時刻。 – MattDavey
我使用LogScope實現代替,並保留增加和減少縮進,而不是重載操作符++和 - :) – furier