title: Exception destructuring in Serilog
body: <p>Serilog has a convenient way of destructuring objects as shown in this example:</p>
  
  <pre><code>logger.Debug(exception, "This is an {Exception} text", exception);
  logger.Debug(exception, "This is an {@Exception} structure", exception);
  </code></pre>
  
  <p>The first line causes the logger to log an exception as plain text (by calling ToString()), and the second line causes the logger to write exception properties as separate fields. But what about this overload:</p>
  
  <pre><code>logger.Debug(exception, "This is an exception", exception);
  </code></pre>
  
  <p>This one takes an exception as its first argument, and it is always written as a string. What I would like to make possible is to enable logging exception in a structured way. Is it possible to configure Serilog to achieve this?</p>
  
  <p>UPDATE. I guess this question leads to another aspect of logging exceptions: how can I ensure that messages are enriched with exception properties (so they are logged in a structured way to the rich sinks like Elasticsearch) without writing all exception properties to the rendered text message (so plain text loggers are not filled with huge piles of exception details).</p>