Как добавить имя файла в команду вывода в C#C#

Место общения программистов C#
Ответить
Anonymous
 Как добавить имя файла в команду вывода в C#

Сообщение Anonymous »

Я работаю над группой приложений клиента/сервера, которые постоянно обмениваются сообщениями. Чтобы следовать этому, я добавил следующую строку в все места, где следует отправлять сообщение: < /p>

Код: Выделить всё

if (cfg_Following_Messages.Value != 0)
log.Debug($"About to broadcast [{message.GetType().Name}]");
new OwnMessageHandler.BroadcastClientMessage(message).Execute();
< /code>
, который создал список, где я мог бы следить за всеми сообщениями, отправляя сервером. В дополнение к этому, поскольку log.debug () 
связан с NLOG , я также мог бы увидеть конкретный класс, ответственный за отправку сообщения. Следует:
файловый диспетчер.

Код: Выделить всё

public partial class Manager{
...
< /code>
Итак, даже изменяя команду журнала на: < /p>
log.Debug($"About to broadcast [{message.GetType().Name}] by [{this.GetType().Name}]");
< /code>
, я все еще получаю что -то вроде: < /p>
2023-10-27 13:43:33.6548 | .Manager | About to broadcast [SpecificTypeOfMessage] by [Manager]
< /code>
, что не очень полезно.2023-10-27 13:43:33.6548 | .Manager | About to broadcast [SpecificTypeOfMessage] by [Manager.Specific.cs]
< /code>
Но как это сделать? В этом другом стеке переполнение упоминается такие вещи, как информация о вызывающем абоненте и StackFrame 
, но я не предпочитаю ни одного из них:
  • Решение StackFrame о получении всего стека вызовов, при каждом случае отправляемого сообщения. Хотя это работает правильно (

    Код: Выделить всё

    sf.GetFileName()
    is tested and yields a correct filename), it looks to me as a huge performance drop.
  • Caller Information CallerFilePath is wrong, as you can see here:
I have added , [CallerFilePath] string filePath = "" to the signature of my method, and in order only to have the Имя файла, я сделал следующее: < /p>

Код: Выделить всё

string filename = filePath.Substring(filePath.LastIndexOf("\\") + 1);
Это, однако, дает менеджер.

Код: Выделить всё

filePath
неправильно для начала)!
рядом с тем фактом, что информация об абоненте неверна, я также предпочитаю не изменять подпись моих методов.
>

Подробнее здесь: https://stackoverflow.com/questions/773 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»