How to use NLog LogMessageGenerator delegate?

If I want to achieve the best performance with NLog , what should I do in my code for this?

(Of course, I have async enabled in NLog.config.)

How to use a delegate to write log messages?

_logger.Info(() => { return "test" });

Unfortunately, I could not figure out how to use this “correctly”. Is it even documented?

_logger.Info(() => { return string.Format("msg", myParams); }); // Is that the way to go?
+4
source share
2 answers

The recommendations are as follows:

  • For a simple string, just pass it _logger.Info("test");
  • Use overloads for parameter string _logger.Info("test with {0}", "value");
  • For expensive operation, use _logger.Info(() => expensiveOperation);or_logger.Info(() => {expensiveOperation()});
  • / .. _logger.IsInfoEnabled ..
+3

NLog

, LogMessageGenerator, .

, , ( HTTP- ), , .

, NLog ASAP .

.
, NLog . , :

_logger.Info(() => { return "test" });

, :

_logger.Info("test");

- .

P.S.

, -, , :

_logger.Info(() => "test");
_logger.Info(() => string.Format("msg", myParams));

, , .

0

Source: https://habr.com/ru/post/1650135/


All Articles