SQL Server формат даты по умолчанию 2008 года

На основе моего опыта - и причина, что мы не используем logrotate с Log4j, то, что путь logrotate работы состоит в том, что он переименовывает файлы, затем дает программе команду закрыть свои журналы и вновь открыть их со старым именем файла (который больше не существует), обычно с помощью Сигнала HUP.

Но Log4j нельзя сказать вновь открыть его файлы журнала, таким образом, я вижу, что Вы используете copytruncate для копирования файлов вместо этого - проблема состоит в том, что Log4j использует буферизированные устройства записи, которые отслеживают текущую позицию файла, который пишется и когда Вы усекаете файл журнала log4j, продолжает писать из того, где это прекратило писать перед усеченным. В зависимости от Вашей реализации файловой системы это должно создать "файлы с дырами" - т.е. Нулевые символы, которые Вы видите, там действительно не существуют - файл является на самом деле только столь же большим как фактические данные, и Нулевой символ является способом, которым Ваше средство просмотра представляет дыру. Некоторые файловые системы, с другой стороны, не поддерживают дыры и действительно заполнят файл Нулевыми символами, когда Log4j продолжает писать.

Я предлагаю - не используют logrotate, находят некоторый способ повернуть файлы в Log4j при помощи RollingFileAppender (который действительно поддерживает удаляющие старые файлы), или использование DailyRollingFileAppender и cronjob, который удаляет старые файлы внешне (поскольку это было предназначено, чтобы быть сделанным).

0
задан 29 September 2010 в 21:02
2 ответа

Для изменения формата даты на экземпляр сервера необходимо изменить язык по умолчанию сервера. Это может быть сделано через Studio управления SQL Server путем щелчка правой кнопкой по узлу сервера затем по свойствам-> усовершенствованный-> язык по умолчанию. Знайте, что логины, созданные предшествующий это изменение, будут использовать старое значение по умолчанию laguage. Изменить язык по умолчанию для каждого входа в систему:

sp_defaultlanguage 'login_name', 'language_name'

Для моего случая я использовал язык 'бразилец', в котором формат даты по умолчанию является DMY.

0
ответ дан 4 December 2019 в 22:50

То, что Вы просите, не может быть сделано becuase, дата по умолчанию не существует. Даты не хранятся как строки, но как число (номер дней от начальной точки вовремя). КАЖДЫЙ формат строки всегда в зависимости от сессии, поскольку это всегда форматируется, как пользователь, просящий его, хочет.

Если действительно необходимо вставить даты как строки, используйте форму ISO, которая принята под всеми локалями. Это имеет форму YYYY-MM-DD (как 29.09.2010).

Но все возвращенные даты всегда возвращаются на самом деле, поля даты AS и строковая форма только сгенерированы на клиенте.

1
ответ дан 4 December 2019 в 22:50

Теги

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