c#, пишущий в средство просмотра события

В Python 3.0, 5 / 2 возвратится 2.5, и 5 // 2 возвратится 2. Первый - деление с плавающей точкой, и последний является подразделением пола, иногда также названным целочисленным делением.

В Python 2.2 или позже в 2.x строка, нет никакого различия для целых чисел, если Вы не выполняете from __future__ import division, который заставляет Python 2.x принимать поведение 3,0

Независимо от будущего импорта, 5.0 // 2 возвратится 2.0, так как это - результат подразделения пола операции.

можно найти подробное описание в https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator

54
задан PushCode 15 July 2009 в 08:12
поделиться

2 ответа

Проблема, вероятно, в том, что вы пытаетесь создать источник событий в журнале, который не не существует. Вам необходимо указать журнал «Приложение».

Попробуйте изменить его на:

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

EventLog.WriteEntry(cs, message, EventLogEntryType.Error);

Также: внутри sharepoint, если приложение работает как зарегистрированный пользователь (через аутентификацию Windows или делегирование), у пользователя не будет доступ для создания источника события. В этом случае одна уловка состоит в том, чтобы создать событие с помощью потока ThreadPool, который при создании будет иметь контекст безопасности пользователя, от имени которого работает пул приложений.

87
ответ дан 7 November 2019 в 07:55
поделиться

Here's how I implemented Event logging. I created a generic ILogger interface so I can swap in different logging mechanisms:

interface ILogger
{
    void Debug(string text);

    void Warn(string text);

    void Error(string text);
    void Error(string text, Exception ex);
}

My implementation class is very simple:

class EventLogger : ILogger
{
    public void Debug(string text)
    {
        EventLog.WriteEntry("MyAppName", text, EventLogEntryType.Information);
    }

    public void Warn(string text)
    {
        EventLog.WriteEntry("MyAppName", text, EventLogEntryType.Warning);
    }

    public void Error(string text)
    {
        EventLog.WriteEntry("MyAppName", text, EventLogEntryType.Error);
    }

    public void Error(string text, Exception ex)
    {
        Error(text);
        Error(ex.StackTrace);
    }
}

Note that I do not instantiate EventLog. To use my logger class I just have the following reference (you could have this returned by a static factory method):

private static readonly ILogger log = new EventLogger();

And the actual usage is like this:

try
{
    // business logic
}
catch (Exception ex)
{
    log.Error("Exception in MyMethodName()", ex);
}
22
ответ дан 7 November 2019 в 07:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: