Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4212712
TestLogger.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
TestLogger.php
View Options
<?php
/**
* Copyright (C) 2015 Wikimedia Foundation and contributors
*
* @license GPL-2.0-or-later
* @file
*/
/**
* A logger that may be configured to either buffer logs or to print them to
* the output where PHPUnit will complain about them.
*
* @since 1.27
*/
class
TestLogger
extends
\Psr\Log\AbstractLogger
{
/** @var bool */
private
$collect
;
/** @var bool */
private
$collectContext
;
/** @var array */
private
$buffer
=
[];
/** @var callable|null */
private
$filter
;
/**
* @param bool $collect Whether to collect logs, also see {@link setCollect}
* @param callable|null $filter Filter logs before collecting/printing. Signature is
* string|null function ( string $message, string $level, array $context );
* @param bool $collectContext Whether to keep the context passed to log
* (since 1.29), also see {@link setCollectContext}
*/
public
function
__construct
(
$collect
=
false
,
$filter
=
null
,
$collectContext
=
false
)
{
$this
->
collect
=
$collect
;
$this
->
collectContext
=
$collectContext
;
$this
->
filter
=
$filter
;
}
/**
* Set the "collect" flag
* @param bool $collect
* @return TestLogger $this
*/
public
function
setCollect
(
$collect
)
{
$this
->
collect
=
$collect
;
return
$this
;
}
/**
* Set the collectContext flag
*
* @param bool $collectContext
* @since 1.29
* @return TestLogger $this
*/
public
function
setCollectContext
(
$collectContext
)
{
$this
->
collectContext
=
$collectContext
;
return
$this
;
}
/**
* Return the collected logs
* @return array Array of [ string $level, string $message ], or
* [ string $level, string $message, array $context ] if $collectContext was true.
*/
public
function
getBuffer
()
{
return
$this
->
buffer
;
}
/**
* Clear the collected log buffer
*/
public
function
clearBuffer
()
{
$this
->
buffer
=
[];
}
/** @inheritDoc */
public
function
log
(
$level
,
$message
,
array
$context
=
[]
):
void
{
$message
=
trim
(
$message
);
if
(
$this
->
filter
)
{
$message
=
(
$this
->
filter
)(
$message
,
$level
,
$context
);
if
(
$message
===
null
)
{
return
;
}
}
if
(
$this
->
collect
)
{
if
(
$this
->
collectContext
)
{
$this
->
buffer
[]
=
[
$level
,
$message
,
$context
];
}
else
{
$this
->
buffer
[]
=
[
$level
,
$message
];
}
}
else
{
echo
"LOG[$level]: $message
\n
"
;
}
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Aug 21 2026, 07:36 (12 w, 14 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
a1/41/fe32ff024bbd5597eed0273bc122
Default Alt Text
TestLogger.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment