标签: event-log

如何在没有 Cloud Explorer 的情况下从 Azure 应用服务获取事件日志文件?

我有 Azure 应用服务。在 Visual Studio 2019 中,我可以执行以下操作来从中获取事件日志:

  1. 打开Cloud Exlorer窗口(查看 -> Cloud Explorer)。
  2. 使用我的 Azure 凭据登录。
  3. 展开订阅,然后展开资源组,然后展开应用服务。
  4. 展开文件夹日志文件
  5. 双击eventlog.xml进行下载。

在 Visual Studio 2022 中,没有云资源管理器。他们建议我们改用 Azure 存储资源管理器。我无法在存储资源管理器中找到事件日志文件。

有谁知道如何在没有 Visual Studio 2019 的情况下从 GUI 或命令行获取它?

在此输入图像描述

logging event-log azure-storage-explorer visual-studio-2022

7
推荐指数
1
解决办法
6497
查看次数

使用 powershell 将事件写入事件日志

我有一个 powershell 脚本,我想将其添加到事件日志中。

当我输入 Write-Eventlog 命令时,我收到一条错误消息。

Write-EventLog -Logname autosnapshot -Source 'D:\script autoSnapshots.ps1' -EventId 8000 -Entrytype Information -Message 'Creates Snapshots and deletes snapshots older than 1 day'
Run Code Online (Sandbox Code Playgroud)

我虽然语法是正确的,但收到一条错误消息。

Write-EventLog: The term 'Write-EventLog' is not recognized as a name of a cmdlet, function, script file, or executable program.
Run Code Online (Sandbox Code Playgroud)

检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

有人知道我做错了什么吗?

任何帮助表示赞赏。

powershell event-log

7
推荐指数
1
解决办法
2922
查看次数

Windows 7/2008 Server上的C#事件记录

我正在尝试为我的cmd行应用程序创建一个事件记录器.但是,当它第一次尝试创建日志时,我收到此错误.

找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性.

所以我发现这是因为Windows 7和一些新的安全性.所以现在我必须给.exe管理员权限.

有没有解决方法,所以它不需要管理员权限?我不知道如果他们必须满足于使用管理员权限运行我的应用程序,人们是否会感觉太好.

我打算稍后将它放在Windows 2008机器上,所以我猜它会遇到同样的问题.

c# event-log windows-server-2008 windows-7

6
推荐指数
1
解决办法
4555
查看次数

C#:GUI,用于显示来自Windows服务的实时消息

我编写了一个C#windows服务,可以将消息写入自定义EventLog或任意数量的文件.这些消息都标记有一些优先级(因此,例如,只有ERROR和WARNING存储在EventLog中,但如果需要,可以将更多内容存储到文件中).

我现在要做的是创建一个GUI,可以监听这些消息并实时显示它们.允许用户观看当前的消息(在任何他们想要的优先级),而不需要的一切存储到文件中.我认为这是某种形式的挂钩到服务的一个单独的程序,但我不能确定从哪里开始.

这是我第一次真正的Windows服务,所以我似乎缺少一些关键字找出如何做到这一点?是否有任何代码样本,教程,参考文献等,为如何做这样的事情?

更新
很多有用的答案,我喜欢它,有很多方法可以解决问题!我想我将实现一个基于WCF的自托管解决方案.我仍然非常关注细节,因为我正在努力了解WCF(我相信它对我来说在其他项目中非常有用)...但到目前为止,我发现这里的视频是最多的有用的介绍方法.

c# windows-services event-log winforms

6
推荐指数
1
解决办法
1万
查看次数

Windows服务输出未显示在事件日志中

我试图按照这个演练.

我正在使用Visual Studio 2010 Premium.

我在服务器资源管理器或事件查看器中看到的唯一事件是"服务已成功启动".并且"服务已成功停止".

这是服务代码:

namespace MyNewService
{
    public partial class MyNewService : ServiceBase
    {
        public MyNewService()
        {
            InitializeComponent();
            if (!EventLog.SourceExists("MySource"))
            {
                EventLog.CreateEventSource("MySource", "MyNewLog");
            }
            eventLog1.Source = "MySource";
            eventLog1.Log = "MyNewLog";
        }

        protected override void OnStart(string[] args)
        {
            eventLog1.WriteEntry("In OnStart");
        }

        protected override void OnStop()
        {
            eventLog1.WriteEntry("In onStop.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# windows windows-services event-log windows-7-x64

6
推荐指数
1
解决办法
3375
查看次数

何时登录Windows事件日志?

到目前为止,我的所有应用程序都只记录到文件.它对我来说很好,我从来没有遇到任何问题.

我的一位朋友建议我也可以使用Windows事件日志,但我不确定.我一直认为事件日志只适用于一些非常重要的消息,如果可以避免,我不应该写入.

我什么时候可以/我应该写入窗口事件日志?

windows logging event-log

6
推荐指数
2
解决办法
246
查看次数

在ClickOnce应用程序中使用EventLog

我有一个我在多个ClickOnce应用程序中使用的库.如果这个库出错,我想把错误写入windows EventLog.

我发现了一篇知识库文章,但似乎需要管理员权限来搜索源代码.特别是在尝试搜索Security事件日志时会发生窒息.

有没有办法解决这个问题并在ClickOnce应用程序中写入事件日志?我看到一个人试图写一个已知来源,但他们似乎无法找到一直可用的来源.

编辑:

根据这里的答案,我创建了一个程序,该程序包含在我的应用程序中,我可以在第一次运行时运行以设置可以获得管理员权限的事件源.但是一旦创建了源代码,我似乎仍然无法写入它.

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        if (!EventLog.SourceExists("ATE"))
        {
            EventLog.CreateEventSource("ATE", "Application");
        }
    }
Run Code Online (Sandbox Code Playgroud)

是否正确创建了一个源(相当于Yannick Blondeau提供的注册表编辑).当我在非提升的应用程序中写入源时,我收到一个新的错误,但它仍然无法正常工作.新错误是:

Cannot open log for source 'ATE'. You may not have write access.

编辑2:

我现在一直试图让它通过CustomSD键上的注册表编辑工作.我尝试添加(A ;; 0x7 ;;; AU)为经过身份验证的用户提供完全访问权限,但似乎没有任何效果.

c# clickonce eventlog-source event-log

6
推荐指数
1
解决办法
3498
查看次数

EventLog 记录在应用程序中,即使设置为另一个日志

EventLog在我的应用程序中创建了一个对象,我用来记录到我自己的日志,创建如下:

if (!System.Diagnostics.EventLog.SourceExists("MyApplication")) {
    System.Diagnostics.EventLog.CreateEventSource(
           "MySource", "MyApplication");
}
eventLog.Source = "MySource";
eventLog.Log = "MyApplication";
Run Code Online (Sandbox Code Playgroud)

我记录这样的条目:

eventLog.WriteEntry("some log line");
Run Code Online (Sandbox Code Playgroud)

检查eventLog对象时,它说Log设置为"MyApplication"。但是,日志记录始终转到 Windows 应用程序日志。我还必须说,在我将另一个源注册到同一日志之前,代码一直有效。该“新”源正确记录。

更新查看注册表时,正确创建了源(作为日志的子项)

可能有什么问题?

c# windows event-log

6
推荐指数
1
解决办法
2417
查看次数

如何找出 EventProperty 名称?

我的 C# 应用程序订阅 Windows 事件日志消息:

var subscriptionQuery = new EventLogQuery(Settings.Default.LogPath, PathType.LogName, Settings.Default.LogQuery);
_watcher = new EventLogWatcher(subscriptionQuery);
_watcher.EventRecordWritten += EventLogEventRead;
Run Code Online (Sandbox Code Playgroud)

当消息发生时,EventLogEventRead处理程序接收一个System.Diagnostics.Eventing.Reader.EventLogRecord包含事件数据的对象。此信息包括EventProperty对象的集合。问题是:EventProperty只定义了一个值,而不是属性的名称。但是,当我在 Windows 事件日志查看器中打开相同的事件时,它会显示带有名称的属性。现在的问题是:如何获取事件属性名称?

.net c# windows event-log

6
推荐指数
2
解决办法
2578
查看次数

Golang中的Windows回调函数

我想在Golang中推送订阅 Windows事件日志
我应该如何传递回调函数?

EVT_SUBSCRIBE_CALLBACK是函数的指针,如

typedef DWORD ( WINAPI *EVT_SUBSCRIBE_CALLBACK)(
   EVT_SUBSCRIBE_NOTIFY_ACTION Action,
   PVOID                       UserContext,
   EVT_HANDLE                  Event
);
Run Code Online (Sandbox Code Playgroud)

所以,我的变体看起来像这样:

func logCallback() syscall.Handle {

    cb := func(_ uintptr, _ uintptr, _ uintptr) uint64 {
        fmt.Printf("callback called %v", data)
        return 0
    }
    ptr := syscall.NewCallback(cb)
    return syscall.Handle(ptr) // type syscall.Handle uintptr
}
Run Code Online (Sandbox Code Playgroud)

我成功订阅处理程序没有错误,但它仍然无法正常工作.有什么想法吗?我应该先在哪里看?

windows dll go event-log

6
推荐指数
1
解决办法
679
查看次数