<?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
namespace Friendica\Util\Logger;
+use Friendica\Util\Strings;
use Psr\Log\LoggerInterface;
/**
* @param string $functionName The current function name of the worker
* @param int $idLength The length of the generated worker ID
*/
- public function __construct(LoggerInterface $logger, $functionName, $idLength = 7)
+ public function __construct(LoggerInterface $logger, $functionName = '', $idLength = 7)
{
$this->logger = $logger;
$this->functionName = $functionName;
- $this->workerId = $this->generateWorkerId($idLength);
+ $this->workerId = Strings::getRandomHex($idLength);
}
/**
- * Generates an ID
- *
- * @param int $length
+ * Sets the function name for additional logging
*
- * @return string
+ * @param string $functionName
*/
- private function generateWorkerId($length)
+ public function setFunctionName(string $functionName)
{
- if ($length <= 0) {
- $this->logger->alert('id length must be greater than 0.');
- return '';
- }
-
- try {
- return substr(bin2hex(random_bytes(ceil($length / 2))), 0, $length);
- } catch (\Exception $exception) {
- $this->logger->alert('random_bytes threw an error', ['exception' => $exception]);
- return '';
- }
+ $this->functionName = $functionName;
}
/**