【发布时间】:2021-07-07 03:57:04
【问题描述】:
我可以使用 log4net+GELF appender 从 C# 应用程序向日志收集器发送日志。
但是如何将日志从 T-SQL 程序发送到 GrayLog? 有代码:
-
WinForms 应用程序运行良好,我在安装了 SQL Server 的同一台机器上运行它。我看到 GrayLog 中收到的所有日志:
private void button1_Click(object sender, EventArgs e) { 字符串设施=“DoBeDo”; 字符串主机=“我的主机名”; int 端口 = 12201;
try { using (var logger = new GrayLogUdpClient(facility, host, port)) { logger.Send("Hello", "Jonny Holiday", new { Username = "John", Email = "jonny@example.com" }); } } catch(Exception xx) { Console.WriteLine("***Exception:{0}", xx.Message); } } -
有 SQLCLR 代码,它可以工作,我在 SSMS 中看到消息,但在 GrayLog 中没有任何记录,也没有任何异常:
公共部分类 StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] 公共静态无效 SqlSPHelper(SqlString 消息) { 尝试 { SqlContext.Pipe.Send(@"SqlSPHelper:: Start"); 字符串设施=“DoBeDo”; 字符串主机=“我的主机名”; int 端口 = 12201;
try { using (var logger = new GrayLogUdpClient(facility, host, port)) { logger.Send("Hey", "Donny Hooligan", new { Username = "Donald", Email = "Donny@example.com" }); } } catch (Exception xx) { Console.WriteLine("***Exception:{0}", xx.Message); } } catch(Exception xx) { SqlContext.Pipe.Send("1:"+xx.Message); } SqlContext.Pipe.Send(@"SqlSPHelper:: Completed"); }
怎么了?如何将日志发送到 GrayLog?
【问题讨论】:
标签: sql-server tsql graylog