gpt4 book ai didi

enums - Nlog 枚举到整数

转载 作者:行者123 更新时间:2023-12-02 05:38:21 26 4
gpt4 key购买 nike

我正在使用 NLog 并将事件记录到 SQL 服务器。记录的字段之一是日志级别,它被记录为字符串、“信息”、“警告”等。我还想将级别记录为整数值,以便在查看日志事件时提供更好的排序一个图形用户界面。

是否可以在不编写自定义布局渲染器的情况下将枚举转换为整数以插入到数据库中?

将级别作为字符串记录到数据库中的配置行是

<parameter name="@Level" layout="${level}"/>

理想情况下可能会转换为整数,例如;

<parameter name="@LevelId" layout="${level:format=tointeger}"/>

很像有一个 format=tostring 转换器。

最佳答案

另一种选择是在插入语句中将字符串转换为整数,如下所示:

<target name="database" xsi:type="Database" connectionStringName="MyConnectionStringName" useTransactions="true">
<commandText>
<![CDATA[
INSERT INTO [dbo].LogEvent
(Time,
LogLevel,
Title,
Message,
ExceptionDetails)
VALUES
(@Time,
CASE @Level
WHEN 'Trace' THEN 0
WHEN 'Debug' THEN 1
WHEN 'Info' THEN 2
WHEN 'Warn' THEN 3
WHEN 'Error' THEN 4
WHEN 'Fatal' THEN 5
ELSE NULL
END,
@Title,
@Message,
@ExceptionDetails)
]]>
</commandText>
<parameter name="@Time" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Title" layout="${ndc}" />
<parameter name="@Message" layout="${message}" />
<parameter name="@ExceptionDetails" layout="${exception:format=tostring}" />
</target>

关于enums - Nlog 枚举到整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com