









需求:在多个方法前后输出日志
logger.Info("begin");
method();
logger.Info("end");
如果需要在方法后输出日志同时加上时长
logger.Info("begin");
var sw= Stopwatch.StartNew();
method();
sw.Stop();
logger.Info("end "+sw.ElapsedMilliseconds);
更优雅的写法
using(var stopwatchLogger = new StopwatchLogger())
{
method();
}
class StopwatchLogger:IDisposable
{
private Stopwatch _stopwatch;
private ILogger _logger;
public StopwatchLogger(ILogger logger)
{
_logger=logger;
_logger.Info("begin");
_stopwatch= Stopwatch.StartNew();
}
public void Dispose()
{
_stopwatch.Stop();
_logger.Info("end "+_stopwatch.ElapsedMilliseconds);
}
}
很多场景下都可以借鉴这样的写法
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。