WPF: что может произойти, если два экземпляра моего приложения сообщают о том же журнале [duplicate]

Это довольно легко сделать из коробки:

Decimal YourValue; //just as example   
String YourString = YourValue.ToString().TrimEnd('0','.');

, который удалит все конечные нули из вашего десятичного числа.

Единственное, что вам нужно сделать, это добавить .ToString().TrimEnd('0','.'); в десятичную переменную для преобразования десятичного разряда в строку без конечных нулей, как в приведенном выше примере.

В некоторых регионах это должно быть .ToString().TrimEnd('0',','); (где они представляют собой запятую вместо point, но вы также можете добавить точку и запятую в качестве параметров).

(вы можете также добавить оба параметра)

16
задан adam0101 9 June 2010 в 23:18
поделиться

2 ответа

Да, у вас может быть два приложения для подключения к log4net, которые добавляют (записывают) в тот же файл журнала.

Вам нужно поместить следующую строку в каждый из ваших Appenders:

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

Это заставит log4net использовать минимальную модель блокировки, которая позволяет нескольким процессам писать в один и тот же файл.

Вот пример XML, который использует два приложения, записывающих в один и тот же файл журнала:

<log4net debug="false">
<appender name="RollingLogFileAppender1" type="log4net.Appender.RollingFileAppender">
  <!-- this configures a log for the application messages -->
  <file value="TestLog.log" />
  <appendToFile value="true" />
  <!-- next line uses a minimal locking model that allows multiple processes to write to the same file -->
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="10MB" />
  <staticLogFileName value="true" />
  <!-- make the most recent log the highest numbered log -->
  <countDirection value="1" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-5level %date{MM-dd-yyyy HH:mm:ss.ff} [%property{NDC}] %message%newline [Thread: %thread] %c{1} Method:%method(%file{1}, Line:%line) %newline" />
  </layout>
  <!-- The following two filters insure only log requests of 
        version '1' use this Appender -->
</appender>
<appender name="RollingLogFileAppender2" type="log4net.Appender.RollingFileAppender">
  <file value="TestLog.log" />
  <appendToFile value="true" />
  <!-- next line uses a minimal locking model that allows multiple processes to write to the same file -->
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="10MB" />
  <staticLogFileName value="true" />
  <!-- make the most recent log the highest numbered log -->
  <countDirection value="1" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-5level %date{MM-dd-yyyy HH:mm:ss.ff} [%property{NDC}] [Thread: %thread] %c{1} Method:%method(%file{1}, Line:%line) %newline%message" />
  </layout>
</appender>
<root>
  <level value="DEBUG" />
  <appender-ref ref="RollingLogFileAppender1" />
  <appender-ref ref="RollingLogFileAppender2" />
</root>

Это можно найти в документации Apache: Apache Log4Net Docs Просто выполните поиск на этой странице для «того же файла».

Надеюсь, что это помогает.

32
ответ дан Steve 21 August 2018 в 13:39
поделиться
  • 1
    Обратите внимание, что только последние версии log4net имеют эту настройку lockModel Xml и класс MinimalLock. Если вы используете старую версию, ошибка не будет, но это не сработает. – Simon Mourier 5 January 2015 в 10:34

Вы можете понять, есть ли какие-либо проблемы с проверкой log4net в окне вывода на visual studio. Ошибки журнала журнала там очень полезны для обнаружения ошибок конфигурации.

1
ответ дан Claudio Redi 21 August 2018 в 13:39
поделиться
  • 1
    К сожалению, нет сообщений об ошибках, которые могли бы мне помочь :( – adam0101 10 June 2010 в 16:52
  • 2
    вы выполнили код для настройки log4net, не так ли? – Claudio Redi 10 June 2010 в 17:46
Другие вопросы по тегам:

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