2017 © Pedro Peláez
 

library monolog-quill

Monolog handler for writing to a Chronicle instance

image

paragonie/monolog-quill

Monolog handler for writing to a Chronicle instance

  • Saturday, January 20, 2018
  • by paragonie-scott
  • Repository
  • 1 Watchers
  • 1 Stars
  • 640 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 310 % Grown

The README.md

Monolog-Quill

Build Status Latest Stable Version Latest Unstable Version License Downloads, (*1)

Requires PHP 7.1 or newer., (*2)

Want to use Monolog to write security events to a Chronicle?, (*3)

This library uses Quill to transcribe log messages to a Chronicle instance. This can be a public or private Chronicle., (*4)

Installation

composer require paragonie/monolog-quill

Usage

<?php

use Monolog\Logger;
use ParagonIE\MonologQuill\QuillHandler;
use ParagonIE\Quill\Quill;
use ParagonIE\ConstantTime\Base64UrlSafe;
use ParagonIE\Sapient\CryptographyKeys\{
    SigningSecretKey,
    SigningPublicKey
};

// Create a Quill for writing data to the Chronicle instance 
$quill = (new Quill())
    ->setChronicleURL('https://chronicle-public-test.paragonie.com/chronicle')
    ->setServerPublicKey(
        new SigningPublicKey(
            Base64UrlSafe::decode('3BK4hOYTWJbLV5QdqS-DFKEYOMKd-G5M9BvfbqG1ICI=')
        )
    )
    ->setClientID('**Your Client ID provided by the Chronicle here**')
    ->setClientSecretKey(
        new SigningSecretKey('/* Loaded from the filesystem or something. */')
    );

// Push the Handler to Monolog
$log = new Logger('security');
$handler = (new QuillHandler($quill, Logger::ALERT));
$log->pushHandler($handler);

// Now security events will be logged in your Chronicle
$log->alert(
    'User bob logged in at ' .
    ((new DateTime())->format(\DateTime::ATOM))
);

Encrypted Message Logging

Simply pass an instance of SealingPublicKey or SharedEncryptionKey to the handler, via the setEncryptionKey() method, to encrypt log messages., (*5)

$handler->setEncryptionKey(
    new SealingPublicKey('/* Loaded from the filesystem or something. */')
);

Encrypted Message Logging - Complete Example

<?php

use Monolog\Logger;
use ParagonIE\MonologQuill\QuillHandler;
use ParagonIE\Quill\Quill;
use ParagonIE\ConstantTime\Base64UrlSafe;
use ParagonIE\Sapient\CryptographyKeys\{
    SealingPublicKey,
    SigningSecretKey,
    SigningPublicKey
};

// Create a Quill for writing data to the Chronicle instance 
$quill = (new Quill())
    ->setChronicleURL('https://chronicle-public-test.paragonie.com/chronicle')
    ->setServerPublicKey(
        new SigningPublicKey(
            Base64UrlSafe::decode('3BK4hOYTWJbLV5QdqS-DFKEYOMKd-G5M9BvfbqG1ICI=')
        )
    )
    ->setClientID('**Your Client ID provided by the Chronicle here**')
    ->setClientSecretKey(
        new SigningSecretKey('/* Loaded from the filesystem or something. */')
    );

// Push the Handler to Monolog
$log = new Logger('security');
$handler = (new QuillHandler($quill, Logger::ALERT));

// Set this to an instance of SealingPublicKey or SharedEncryptionKey:
$handler->setEncryptionKey(
    new SealingPublicKey('/* Loaded from the filesystem or something. */')
);

$log->pushHandler($handler);

// Now security events will be logged in your Chronicle
$log->alert(
    'User bob logged in at ' .
    ((new DateTime())->format(\DateTime::ATOM))
);

The Versions

20/01 2018

dev-master

9999999-dev

Monolog handler for writing to a Chronicle instance

  Sources   Download

ISC

The Requires

 

The Development Requires

20/01 2018

v0.1.0

0.1.0.0

Monolog handler for writing to a Chronicle instance

  Sources   Download

ISC

The Requires

 

The Development Requires