是否可以使用log4net框架从写入日志的消息中删除回车符

时间:2016-02-11 16:26:36

标签: log4net

我想在将字符串写入log4net之前从字符串中删除回车符。

示例:

    string query = string.Format(@"select
*
from
<a table>

如果我通过以下方式登录,则有三个\ n \ n \ n \ n <\ n>

log.Debug(query);

我得到了一些凌乱的日志

理想的输出将被剥离。我可以这样做:

log.Debug(query.Replace("\n",""));

但必须记住每次调用日志方法...

1 个答案:

答案 0 :(得分:0)

我不确定如何使用web.config中的转换模式printf like语法来执行此操作。但是,如果您想要始终为所有级别执行此操作,则可以下载源并更改内部。

否则,您可以创建一个类似的扩展方法:

public static void Debug(this ILog logger, string message, bool removeNewLines)
{
    if (logger == null)
        throw new ArgumentNullException("logger");

    logger.Debug(removeNewLines ? message.Replace("\n", string.Empty) : message);
} 

..然后像这样称呼它:

log.Debug(query, true);

唯一的问题是你必须记得称之为:

log.Debug(query, true);

而不是:

log.Debug(query);