linux查看mono进程,Linux上的Mono:事件日志

我正致力于让为Windows编写的C#应用程序使用Mono在Linux上运行。我正在使用Mono5.18.0.240,它来自MonoRepository,在Ubuntu18.04.1上。

我的理解是Mono包含一个基于本地文件的事件记录器。通过设置环境变量

MONO_EVENTLOG_TYPE

local

(后跟可选路径),事件将记录到基于文件的日志中。但是,记录的事件似乎没有被排序到创建的正确源目录中。这使得所有事件都被记录到同一个目录中,这使得在记录许多事件时在文件中导航更加困难。

考虑一下这个C#程序,它只为三个事件源分别记录两个事件:

using System;

using System.Diagnostics;

namespace EventLogTest

{

class Program

{

public static void Main()

{

var sources = new string[] { "source1", "source2", "source3" };

foreach(var source in sources){

if(! EventLog.SourceExists(source)) EventLog.CreateEventSource(source, "Application");

EventLog log = new EventLog();

log.Source = source;

log.WriteEntry("some event");

log.WriteEntry("another event");

}

}

}

}

我们可以将程序构建为可执行文件,然后运行它:

$ csc events.cs

Microsoft (R) Visual C# Compiler version 2.8.2.62916 (2ad4aabc)

Copyright (C) Microsoft Corporation. All rights reserved.

$ MONO_EVENTLOG_TYPE=local:./eventlog mono ./events.exe

事件日志目录的结果结构如下所示:

$ tree ./eventlog

./eventlog

âââ Application

âââ 1.log

âââ 2.log

âââ 3.log

âââ 4.log

âââ 5.log

âââ 6.log

âââ Application

âââ source1

âââ source2

âââ source3

5 directories, 6 files

注意目录

source1

,

source2

,和

source3

已创建,但六个日志文件位于顶层

Application

目录而不是源目录。如果查看每个日志文件的源字段,可以看到源是正确的:

$ grep -a Source ./eventlog/Application/*.log

eventlog/Application/1.log:Source: source1

eventlog/Application/2.log:Source: source1

eventlog/Application/3.log:Source: source2

eventlog/Application/4.log:Source: source2

eventlog/Application/5.log:Source: source3

eventlog/Application/6.log:Source: source3

我的期望是,考虑到每个事件日志源都写入了两个事件(我看不到第二个应用程序目录的意义),上面的目录结构应该是这样的:

./eventlog

âââ Application

âââ source1

â   âââ 1.log

â   âââ 2.log

âââ source2

â   âââ 1.log

â   âââ 2.log

âââ source3

âââ 1.log

âââ 2.log

现在,我知道最明显的解决方案可能是使用一个日志解决方案,而不是Mono的内置事件日志。不过,在这一点上,我必须坚持使用可用的内置工具。

有没有办法配置Mono内置的本地事件日志记录来将事件保存到相关源目录中的日志文件中,或者这可能是Mono中的一个bug?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值