Skip to content

Commit 69c14dc

Browse files
authored
Merge pull request #4 from OnrampLab/issue-3-feat-loggly-handler
loggly handler Close #3
2 parents e51a2b1 + d977567 commit 69c14dc

File tree

4 files changed

+79
-1
lines changed

4 files changed

+79
-1
lines changed

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
[![CircleCI](https://circleci.com/gh/OnrampLab/next-starter.svg?style=shield)]()
55
[![Total Downloads](https://img.shields.io/packagist/dt/onramplab/laravel-log-enhancement.svg?style=flat-square)](https://packagist.org/packages/onramplab/laravel-log-enhancement)
66

7+
A library with logging enhancement. Including:
8+
9+
- `LogWithClassPath` trait
10+
- It adds convinient methods for logging to add class path into context.
11+
- `LogglyHandler` class
12+
- It extends monolog's LogglyHandler with tags support
713

814
## Install
915

@@ -14,6 +20,7 @@ composer require onramplab/laravel-log-enhancement
1420

1521
## Usage
1622

23+
### LogWithClassPath Trait
1724
Use `LogWithClassPath` trait to let it automatically put class path into log context. You can refer to following code example.
1825

1926
```php
@@ -47,8 +54,36 @@ The log json will look like this:
4754
}
4855
```
4956

57+
### LogglyHandler
58+
59+
You can adding following block into `config/logging.php`.
60+
61+
```php
62+
use Monolog\Formatter\LogglyFormatter;
63+
use Onramplab\LaravelLogEnhancement\Handlers\LogglyHandler;
64+
65+
return [
66+
//...
5067

5168

69+
'channels' => [
70+
//...
71+
72+
'loggly' => [
73+
'driver' => 'monolog',
74+
'level' => 'info',
75+
'handler' => LogglyHandler::class,
76+
'handler_with' => [
77+
'token' => env('LOGGLY_TOKEN'),
78+
'tags' => env('LOGGLY_TAGS'),
79+
],
80+
'formatter' => LogglyFormatter::class,
81+
],
82+
]
83+
];
84+
85+
```
86+
5287

5388
## Testing
5489

composer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
],
1313
"minimum-stability": "dev",
1414
"prefer-stable":true,
15-
"require": {},
15+
"require": {
16+
"monolog/monolog": "^1.12|^2.0"
17+
},
1618
"require-dev": {
1719
"fzaninotto/faker": "^1.9@dev",
1820
"illuminate/support": "^7.0",

src/Handlers/LogglyHandler.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace Onramplab\LaravelLogEnhancement\Handlers;
4+
5+
use Monolog\Logger;
6+
use Monolog\Handler\LogglyHandler as BaseLogglyHandler;
7+
8+
class LogglyHandler extends BaseLogglyHandler
9+
{
10+
public function __construct($token, $tags, $level = Logger::DEBUG, $bubble = true)
11+
{
12+
parent::__construct($token, $level, $bubble);
13+
14+
$tagsList = explode(',', $tags);
15+
$this->setTag($tagsList);
16+
}
17+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace Onramplab\LaravelLogEnhancement\Tests\Unit\Handlers;
4+
5+
use Onramplab\LaravelLogEnhancement\Tests\TestCase;
6+
use Mockery;
7+
use Onramplab\LaravelLogEnhancement\Handlers\LogglyHandler;
8+
9+
class LogglyHandlerTest extends TestCase
10+
{
11+
/**
12+
* @test
13+
*
14+
* @return void
15+
*/
16+
public function constructor_should_support_tags()
17+
{
18+
$this->handler = Mockery::mock(LogglyHandler::class)->makePartial();
19+
20+
$this->handler->shouldReceive('setTag')->with(['tag1', 'tag2'])->once();
21+
22+
$this->handler->__construct('test', 'tag1,tag2');
23+
}
24+
}

0 commit comments

Comments
 (0)