Commit graph

36 commits

Author SHA1 Message Date
Jesse Chavez
99d02caed3 [ruby/logger] Fix log rotation inter-process lock failed.
Issue only occurs in JRuby 9.3.0.0 and Windows and the full
console output is:

log rotation inter-process lock failed. D:\log.txt -> D:\log.txt.0: The process cannot access the file because it is being used by another process.
log writing failed. closed stream
log writing failed. closed stream
...

19fc734638
2022-01-27 12:33:06 +09:00
Hiroshi SHIBATA
8f6b42e0cb
[ruby/logger] Ignored loading CoreAssertions in test runner
2fd5401ad6
2021-09-15 08:49:24 +09:00
Jeremy Evans
6f14a30022 [ruby/logger] Consider cygwin a Windows platform
This should fix Ruby Bug 12468.

49de53d1fc
2020-12-04 20:16:00 +09:00
Nobuyoshi Nakada
e68999c82c
Fixed misspellings
Fixed misspellings reported at [Bug #16437], for default gems.
2019-12-20 12:19:45 +09:00
Nobuyoshi Nakada
9421c78041
[ruby/logger] Fixed leaked tempfile
fb3eff153f
2019-12-17 14:01:40 +09:00
Jeremy Evans
0b10d46a57 [ruby/logger] Enable more timezone tests on OpenBSD
bcd7e227e8
2019-12-10 21:01:11 +09:00
Jeremy Evans
38722fa179 [ruby/logger] Raise ArgumentError for invalid shift_age
Consider 'now' and 'everytime' as valid values for the previous
behavior of rotating everytime.

Fixes Ruby Bug 15977

f92979a376
2019-12-10 20:59:02 +09:00
Jeremy Evans
146677a1e7 Fix keyword argument warnings in the tests from Class#new
This were previously hidden because calls from C were not warned.
2019-09-06 19:41:23 -07:00
Hiroshi SHIBATA
1b59ed9b49
Move helper file of logger to under the test/logger. 2019-07-15 14:43:08 +09:00
Rafael Mendonça França
58065b8701
[ruby/logger] Add option to set the binary mode of the log device
Without binmode strings with incompatible encoding can't be written in
the file. This is very common in applications that log user provided
parameters.

We need to allow changing the binnary mode because right now it is impossible to use
the built-in log rotation feature when you provide a File object to the
LogDevice, and if you provide a filename you can't have binmode.

9114b3ac7e
2019-07-15 14:43:08 +09:00
Jeremy Evans
f4064a0a0c
[ruby/logger] Set filename when initializing logger with a File object
This should allow reopen to work.  Requested in ruby issue #14595.

bd367aff12
2019-07-15 14:43:08 +09:00
sonots
136196785b
[ruby/logger] Fix to use logger and test-unit in this repo with
`ruby test/logger/test_xxx.rb`

d3c2402340
2019-07-15 14:43:07 +09:00
usa
58b3f36546 revert r60999
* test/logger/test_logdevice.rb: revert r60999 because it was caused by not
  committed changes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-04 00:23:31 +00:00
usa
eff0a1cce8 give a change to determine to rotate the log or not
* test/logger/test_logdevice.rb (test_shifting_{age,period_suffix}): give a
  chance to determine to rotate the log or not.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-03 15:49:05 +00:00
nobu
30d23ec903 multiple arguments to write
Make write methods of IO-like objects accept multiple arguments,
as well as IO#write.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-23 14:05:07 +00:00
nobu
f6e77b9d35 logger.rb: fix next rotate time
* lib/logger.rb (Logger::LogDevice#initialize): calculate next
  rotate time based on the mtime of the last existing file.
  [ruby-dev:49881] [Bug #12948]

Author: Tsukasa Oishi <tsukasa.oishi@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-16 06:59:42 +00:00
nobu
2b80941e95 test/logger/test_logdevice.rb: heredoc styles
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-16 06:59:41 +00:00
nobu
8fc170a34e logger: fix monthly log rotate with DST
* lib/logger.rb (Logger::Period#next_rotate_time): fix monthly log
  rotate when DST is applied during a month of 31 days.
  [Fix GH-1458]

With DST the month of october can actually last more than 31 days.
It can last 31 days plus 1 hour. So during october, `t` used to be
equal to "2016-10-31 23:00:00" instead of "2016-11-01 00:00:00".
This was then normalized to "2016-10-01 00:00:00" which lead every
single line of log during october to rotate the log file.
This fix ensure that next_rotate_time(now, 'monthly') always return
the first day of next month in every situation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-08 00:06:57 +00:00
usa
b1376614de * test/logger/test_logdevice.rb (TestLogDevice#test_shifting_period_suffix):
too many shifting.  the last shifting created logs named as `*.3`, and
  they were never unlinked.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-01 14:56:45 +00:00
nobu
b48c212ec9 use more descriptive assertions
* test/logger/test_logdevice.rb: use assert_predicate,
  assert_not_predicate, and assert_file instead of bare assert.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-19 04:14:38 +00:00
sonots
dd4f590196 * test/logger/test_logdevice.rb: fix tests to pass on windows
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-18 15:54:45 +00:00
sonots
2c6f15b1ad * lib/logger.rb: Add shift_period_suffix option [Fix GH-10772]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-18 15:07:31 +00:00
naruse
3e92b635fb Add frozen_string_literal: false for all files
When you change this to true, you may need to add more tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
sonots
9876377040 * test/logger/test_logdevice.rb: Fix tests of logger to make it work on
windows (windows can not remove opened file) [Bug #11702]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-18 00:53:14 +00:00
sonots
f952570bdd lib/logger.rb: Add Logger#reopen
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-17 13:58:57 +00:00
nobu
6df21cb469 logger.rb: end of week should be Saturday
* lib/logger.rb (Logger::Period#previous_period_end): as weekly
  rotation shifts the log file on Sundays, the end date of the
  previous period should be Saturdays.  fix r45072.
  [ruby-dev:49314] [Bug #11622]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-27 07:18:14 +00:00
nobu
e8c00b7027 logger.rb: fix weekly rotation
* lib/logger.rb (Logger::Period#next_rotate_time): get rid of
  adding to mday not to exceed the days of the month.
  [ruby-core:71185] [Bug #11620]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-27 03:00:38 +00:00
nobu
ae042f21fb use assert_raise
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-02 02:18:44 +00:00
akr
fb2008a73a * test/lib/envutil.rb: Moved from test/ruby/.
* test/lib/find_executable.rb: Ditto.

* test/lib/memory_status.rb: Ditto.

* test/lib/test/unit.rb: require envutil.

* test/: Don't require envutil in test files.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-13 16:05:37 +00:00
akr
2edc9ea5f8 test/logger/test_logdevice.rb: Close fds.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-29 13:12:38 +00:00
nobu
cd4b0c10ef test_logdevice.rb: no utime
* test/logger/test_logdevice.rb (test_shifting_midnight): do not
  set mtime to get rid of an error on Windows.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22 03:18:36 +00:00
nobu
1c3021504d test_logdevice.rb: use assert_in_out_err
* test/logger/test_logdevice.rb (test_shifting_midnight): use
  verbose assert_in_out_err instead of assert_ruby_status.

* test/logger/test_logdevice.rb (test_shifting_dst_change): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22 01:51:52 +00:00
nobu
5258f67d17 test_logdevice.rb: run iff timezene supported
* test/logger/test_logdevice.rb (test_shifting_dst_change): test
  only on platforms where timezone is supported.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21 07:49:54 +00:00
nobu
be5de49090 logger.rb: DST
* lib/logger.rb (next_rotate_time, previous_period_end): consider
  DST change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21 07:45:55 +00:00
nobu
82d495134c logger.rb: fix midnight log rotation miss
* lib/logger.rb (Logger::LogDevice#check_shift_log): compare the
  current time with the time for the next rotation to fix rotation
  miss when date changed between the comparison and log writing.
  based on the patch by megayu <yuhg2310 AT gmail.com>.
  [Fixes GH-539]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21 07:11:03 +00:00
nobu
e00bcd1df3 test/logger: split
* test/logger: split for each test cases.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21 07:04:25 +00:00