Skip to content

Commit 671fbef

Browse files
File Log writer without newline. (#19941)
* File Log writer without newline. * Fix minor correction. * Fix tests. * Add more test. * Add line to CHANGELOG.md.
1 parent a2ee220 commit 671fbef

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

framework/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Yii Framework 2 Change Log
44
2.0.50 under development
55
------------------------
66

7-
- no changes in this release.
7+
- Bug #19940: File Log writer without newline (terabytesoftw)
88

99

1010
2.0.49 August 29, 2023

framework/log/FileTarget.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,12 @@ public function export()
130130
if ($this->enableRotation && @filesize($this->logFile) > $this->maxFileSize * 1024) {
131131
$this->rotateFiles();
132132
}
133-
$writeResult = @fwrite($fp, $trimmedText);
133+
$writeResult = @fwrite($fp, $text);
134134
if ($writeResult === false) {
135135
$error = error_get_last();
136136
throw new LogRuntimeException("Unable to export log through file ({$this->logFile})!: {$error['message']}");
137137
}
138-
$textSize = strlen($trimmedText);
138+
$textSize = strlen($text);
139139
if ($writeResult < $textSize) {
140140
throw new LogRuntimeException("Unable to export whole log through file ({$this->logFile})! Wrote $writeResult out of $textSize bytes.");
141141
}

tests/framework/log/FileTargetTest.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,19 @@ public function testLogEmptyStrings()
123123
$logger->export();
124124

125125
$test = file($logFile);
126-
$this->assertEquals("xxx", $test[0]);
126+
$this->assertEquals("xxx\n", $test[0]);
127+
128+
$this->clearLogFile($logFile);
129+
130+
$logger = new CustomLogger();
131+
$logger->logFile = $logFile;
132+
$logger->messages = array_fill(0, 3, 'xxx');
133+
$logger->export();
134+
135+
$test = file($logFile);
136+
$this->assertEquals("xxx\n", $test[0]);
137+
$this->assertEquals("xxx\n", $test[1]);
138+
$this->assertEquals("xxx\n", $test[2]);
127139

128140
$this->clearLogFile($logFile);
129141

0 commit comments

Comments
 (0)