MainLogger: accept timezone as a constructor parameter

this makes it easier to unit-test, as well as making it independent of Timezone.
This commit is contained in:
Dylan K. Taylor 2021-02-04 21:50:06 +00:00
parent 54d9342ed9
commit 169650dc5b
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
3 changed files with 4 additions and 4 deletions

View File

@ -237,7 +237,7 @@ namespace pocketmine {
Terminal::init();
}
$logger = new MainLogger($dataPath . "server.log", Terminal::hasFormattingCodes(), "Server");
$logger = new MainLogger($dataPath . "server.log", Terminal::hasFormattingCodes(), "Server", new \DateTimeZone(Timezone::get()));
\GlobalLogger::set($logger);
emit_performance_warnings($logger);

View File

@ -55,13 +55,13 @@ class MainLogger extends \AttachableThreadedLogger implements \BufferedLogger{
/**
* @throws \RuntimeException
*/
public function __construct(string $logFile, bool $useFormattingCodes, string $mainThreadName, bool $logDebug = false){
public function __construct(string $logFile, bool $useFormattingCodes, string $mainThreadName, \DateTimeZone $timezone, bool $logDebug = false){
parent::__construct();
$this->logDebug = $logDebug;
$this->useFormattingCodes = $useFormattingCodes;
$this->mainThreadName = $mainThreadName;
$this->timezone = Timezone::get();
$this->timezone = $timezone->getName();
$this->logWriterThread = new MainLoggerThread($logFile);
$this->logWriterThread->start(PTHREADS_INHERIT_NONE);

View File

@ -43,7 +43,7 @@ class AsyncPoolTest extends TestCase{
public function setUp() : void{
@define('pocketmine\\COMPOSER_AUTOLOADER_PATH', dirname(__DIR__, 3) . '/vendor/autoload.php');
$this->mainLogger = new MainLogger(tempnam(sys_get_temp_dir(), "pmlog"), false, "Main");
$this->mainLogger = new MainLogger(tempnam(sys_get_temp_dir(), "pmlog"), false, "Main", new \DateTimeZone('UTC'));
$this->pool = new AsyncPool(2, 1024, new \BaseClassLoader(), $this->mainLogger, new SleeperHandler());
}