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(); 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); \GlobalLogger::set($logger);
emit_performance_warnings($logger); emit_performance_warnings($logger);

View File

@ -55,13 +55,13 @@ class MainLogger extends \AttachableThreadedLogger implements \BufferedLogger{
/** /**
* @throws \RuntimeException * @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(); parent::__construct();
$this->logDebug = $logDebug; $this->logDebug = $logDebug;
$this->useFormattingCodes = $useFormattingCodes; $this->useFormattingCodes = $useFormattingCodes;
$this->mainThreadName = $mainThreadName; $this->mainThreadName = $mainThreadName;
$this->timezone = Timezone::get(); $this->timezone = $timezone->getName();
$this->logWriterThread = new MainLoggerThread($logFile); $this->logWriterThread = new MainLoggerThread($logFile);
$this->logWriterThread->start(PTHREADS_INHERIT_NONE); $this->logWriterThread->start(PTHREADS_INHERIT_NONE);

View File

@ -43,7 +43,7 @@ class AsyncPoolTest extends TestCase{
public function setUp() : void{ public function setUp() : void{
@define('pocketmine\\COMPOSER_AUTOLOADER_PATH', dirname(__DIR__, 3) . '/vendor/autoload.php'); @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()); $this->pool = new AsyncPool(2, 1024, new \BaseClassLoader(), $this->mainLogger, new SleeperHandler());
} }