c# - 在 Clickhouse 客户端中禁用 SQL 日志记录
问题描述
我需要为Clickhouse 客户端禁用 SQL 日志记录以进行控制台。我在代码中看不到启用日志记录的任何地方。它只是默认记录,真的很烦人。
客户端初始化
services.AddSingleton<IClickHouseClientFactory, ClickHouseClientFactory>();
将文本转储到控制台的示例命令
var res = _clickHouseDatabase.ExecuteSelectCommand("SELECT max(timestamp) FROM organic_trades");
这就是控制台的日志
info: ClickHouse.Net.ClickHouseQueryLogger[0]
Clickhouse query: SELECT max(timestamp) FROM mm_latoken_trades completed in 72 ms.
请建议我在哪里可以关闭注销
解决方案
好好看看 GitHub 上的源码
> ExecuteSelectCommand
调用具有此定义的 Execute:https ://github.com/ilyabreev/ClickHouse.Net/blob/67f656098422dd0e6c311972dbcafafcee01703e/src/ClickHouse.Net/ClickHouseDatabase.cs#L290
其中特别有这一行:
_queryLogger?.AfterQuery(commandText);
_queryLogger 的实现在这里:https ://github.com/ilyabreev/ClickHouse.Net/blob/67f656098422dd0e6c311972dbcafafcee01703e/src/ClickHouse.Net/ClickHouseQueryLogger.cs#L6
我在代码中看不到任何配置切换以跳过日志记录。
我猜你可以调用ClickHouseDatabase构造函数,传入一个空的IClickHouseQueryLogger
public ClickHouseDatabase(
ClickHouseConnectionSettings connectionSettings,
IClickHouseCommandFormatter commandFormatter,
IClickHouseConnectionFactory connectionFactory,
IClickHouseQueryLogger queryLogger,
IPropertyBinder propertyBinder)
{
_connectionSettings = connectionSettings;
_commandFormatter = commandFormatter;
_connectionFactory = connectionFactory;
_queryLogger = queryLogger;
_propertyBinder = propertyBinder;
}
推荐阅读
- css - 子 div 中的滚动条不适用
- android - 编辑文本未在 RelativeLayout 中更新
- r - 为什么这个非本地函数只在提供参数时才起作用?
- android - 在 mysql 数据库中更新数据时调用 android 设备中的函数
- sql - 获取超过 5 小时的带有时间戳 (HHMMSS) 的记录
- javascript - 是否可以直接评估 Mapbox 表达式?
- ionic-framework - 需要关于“无法读取未定义的属性‘nativeElement’”的永久解决方案
- c# - NHibernate:拦截和修改查询参数?
- android - 按钮边框颜色是themes.xml的primaryColor而不是drawable.xml的描边颜色
- c++ - 从项目的成员函数中的列表中删除列表项