Это довольно легко сделать из коробки:
Decimal YourValue; //just as example
String YourString = YourValue.ToString().TrimEnd('0','.');
, который удалит все конечные нули из вашего десятичного числа.
Единственное, что вам нужно сделать, это добавить .ToString().TrimEnd('0','.');
в десятичную переменную для преобразования десятичного разряда в строку без конечных нулей, как в приведенном выше примере.
В некоторых регионах это должно быть .ToString().TrimEnd('0',',');
(где они представляют собой запятую вместо point, но вы также можете добавить точку и запятую в качестве параметров).
(вы можете также добавить оба параметра)
Да, у вас может быть два приложения для подключения к 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 Просто выполните поиск на этой странице для «того же файла».
Надеюсь, что это помогает.
Вы можете понять, есть ли какие-либо проблемы с проверкой log4net в окне вывода на visual studio. Ошибки журнала журнала там очень полезны для обнаружения ошибок конфигурации.