Skip to content

Commit

Permalink
revert rfc field to scalar node (for SyslogUdpHandler::RFC5424e), upd…
Browse files Browse the repository at this point in the history
…ate ident field validation
  • Loading branch information
gwinn committed Mar 31, 2021
1 parent 0e5f93e commit e3b21dc
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 7 deletions.
9 changes: 3 additions & 6 deletions DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@
* - [level]: level name or int value, defaults to DEBUG
* - [bubble]: bool, defaults to true
* - [ident]: string, defaults to
* - [rfc]: SyslogUdpHandler::RFC3164 (0) or SyslogUdpHandler::RFC5424 (1), defaults to SyslogUdpHandler::RFC5424
* - [rfc]: SyslogUdpHandler::RFC3164 (0), SyslogUdpHandler::RFC5424 (1) or 2 (for SyslogUdpHandler::RFC5424e, monolog 1 does not support it) defaults to SyslogUdpHandler::RFC5424
*
* - swift_mailer:
* - from_email: optional if email_prototype is given
Expand Down Expand Up @@ -410,7 +410,7 @@ public function getConfigTreeBuilder()
->booleanNode('use_locking')->defaultFalse()->end() // stream and rotating
->scalarNode('filename_format')->defaultValue('{filename}-{date}')->end() //rotating
->scalarNode('date_format')->defaultValue('Y-m-d')->end() //rotating
->scalarNode('ident')->defaultFalse()->end() // syslog and syslogudp
->scalarNode('ident')->defaultValue('php')->end() // syslog and syslogudp
->scalarNode('logopts')->defaultValue(LOG_PID)->end() // syslog
->scalarNode('facility')->defaultValue('user')->end() // syslog
->scalarNode('max_files')->defaultValue(0)->end() // rotating
Expand Down Expand Up @@ -496,10 +496,7 @@ public function getConfigTreeBuilder()
->scalarNode('title')->defaultNull()->end() // pushover
->scalarNode('host')->defaultNull()->end() // syslogudp & hipchat
->scalarNode('port')->defaultValue(514)->end() // syslogudp
->enumNode('rfc')
->values([SyslogUdpHandler::RFC5424, SyslogUdpHandler::RFC3164])
->defaultValue(SyslogUdpHandler::RFC5424)
->end() // syslogudp
->scalarNode('rfc')->defaultValue(SyslogUdpHandler::RFC5424)->end() // syslogudp
->arrayNode('publisher')
->canBeUnset()
->beforeNormalization()
Expand Down
8 changes: 7 additions & 1 deletion DependencyInjection/MonologExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -519,12 +519,18 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler
$handler['level'],
$handler['bubble'],
]);
if ($handler['ident']) {

if (false === $handler['ident'] || null === $handler['ident']) {
$handler['ident'] = 'php';
$definition->addArgument($handler['ident']);
} elseif ($handler['ident']) {
$definition->addArgument($handler['ident']);
}

if (isset($handler['rfc'])) {
$definition->addArgument($handler['rfc']);
}

break;

case 'swift_mailer':
Expand Down
26 changes: 26 additions & 0 deletions Tests/DependencyInjection/MonologExtensionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use InvalidArgumentException;
use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy;
use Monolog\Handler\RollbarHandler;
use Monolog\Handler\SyslogUdpHandler;
use Monolog\Logger;
use Monolog\Processor\UidProcessor;
use Symfony\Bridge\Monolog\Processor\SwitchUserTokenProcessor;
Expand Down Expand Up @@ -228,6 +229,31 @@ public function testSyslogHandlerWithLogopts()
$this->assertDICConstructorArguments($handler, [false, 'user', \Monolog\Logger::DEBUG, true, LOG_CONS]);
}

public function testSyslogHandlerForEmptyIdent()
{
$container = $this->getContainer(
[
[
'handlers' => [
'syslogudp' => [
'type' => 'syslogudp',
'host' => '127.0.0.1',
'port' => 514,
'facility' => 'USER',
'level' => 'ERROR',
'ident' => null,
'rfc' => SyslogUdpHandler::RFC5424,
]
]
]
]
);

$expectedArguments = ['127.0.0.1', 514, 'USER', true, 400, 'php', 1];
$definition = $container->getDefinition('monolog.handler.syslogudp');
$this->assertDICConstructorArguments($definition, $expectedArguments);
}

public function testRollbarHandlerCreatesNotifier()
{
$container = $this->getContainer([['handlers' => ['main' => ['type' => 'rollbar', 'token' => 'MY_TOKEN']]]]);
Expand Down

0 comments on commit e3b21dc

Please sign in to comment.