Вопрос

Согласно документации Log4Net , RollingFileAppender будет катить файл журнала только тогда, когда сообщение зарегистрировано. Мне нужно войти в этот файл, но импортировать его каждый день в другую базу данных. Я не могу использовать приложение базы данных, потому что мне нужны файлы, и мне нужно перевести данные из файла журнала в базу данных (это не прямая копия). Проблема в том, что если после полуночи нет активности журнала, журнал не катится. Импортер ищет файл предыдущих дней (и я не могу изменить этот код), поэтому, если нет активности, а журнал не свернут, импортер не находит файл. Есть ли способ заставить бревно катиться в полночь, не имея другой нити, которая просыпается и заставляет его катиться? Может ли пользовательский appender сделать это? Я хотел бы избежать этого, если это возможно.

Это было полезно?

Решение

Напишите службу Windows, которая запускает событие сразу после полуночи и записывает фиктивную запись в журнале, используя ту же конфигурацию.

Другие советы

Вы должны подумать об этом с точки зрения вопроса "какие пути кода ведут к процедуре опрокидывания?". Как только вы узнаете, как выполняется эта процедура, вы можете решить, как ее запустить.

Может ли это сделать специальный пользователь? Конечно, но код в приложении не будет работать, пока вы не войдете в него, и вы вернетесь к исходной точке.

Что касается вопроса "Есть ли какой-либо способ заставить журнал работать в полночь, не имея другого потока, который просыпается и заставляет его вращаться?", я бы сказал, что этот вопрос эквивалентен "Возможно ли это?" заставить журнал катиться в полночь без запуска какого-либо кода? Я не пытаюсь быть смешным или оскорблять вас, я просто пытаюсь сформулировать вопрос таким образом, который, я надеюсь, ответит на него для вас. : -)

Самый простой способ решить эту проблему - проснуться и войти в систему, чтобы заставить файл вращаться.

Согласно документации RollingFileAppender вы можете установить его чтобы катиться ежедневно, посмотрите эту конфигурацию:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logfile" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top