-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathphpWTL_ex-01a_Combined-and-FileLogWriter.php
86 lines (70 loc) · 2.4 KB
/
phpWTL_ex-01a_Combined-and-FileLogWriter.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
/**
* phpWTL example 1a
*
* Combined Logger and FileLogWriter (FLW).
*
* @author Michael Beyer <[email protected]>
* @version v0.1.1
*/
use phpWTL\phpWTL;
use phpWTL\CombinedLogger;
use phpWTL\DRP;
use phpWTL\DataRetrievalPolicy;
use phpWTL\DataRetrievalPolicyHelper;
use phpWTL\LogWriter\FLW\FileLogWriter;
use phpWTL\LogWriter\FLW\FileLogWriterHelper;
require_once '../phpWTL.php';
require_once '../CombinedLogger.php';
require_once '../LogWriter/FLW/FileLogWriter.php';
require_once '../LogWriter/FLW/FileLogWriterHelper.php';
// custom policies example
$myPolicies= array(
new DataRetrievalPolicy(
array(
'name' => DRP::DRP_CONTENT_LENGTH_RETRIEVAL,
'flag' => DRP::DRP_CLR_CUSTOM,
'parameter' => 'phpWTL_ex-01_Combined-and-FileLogWriter.php'
)
)
);
// instantiate a logger for "combined" format
$logger= CombinedLogger::getInstance($myPolicies);
// show your logger's format description (here: combined)
echo "<br/>combined format prefix: ";
echo $logger->getFormatDescriptor()->getformatPrefix();
echo "<br/>combined format field names: ";
print_r($logger->getFormatDescriptor()->getFieldNames());
// override field format example
$logger->getFormatDescriptor()->setFormatter("content_size", "%B");
// do the actual logging (data retrieval, validation and formatting)
$logger->log();
// you can individually change fields content after logging
// (but then you might have to apply validator or formatter yourself afterwards if needed)
$myval= "hello world!";
if ($logger->getDataValidator()->isValid("user_id", $myval)) {
$logger->getDataRetriever()->setFieldContent("user_id", $myval);
$logger->getDataFormatter()->formatAllField("user_id");
}
// instantiate a file log writer
$writer= new FileLogWriter();
// a writer will log their internal error, warnings and state into corr. variables:
// "error" array, "warning" array and "state" string
echo "<br/><br/>";
echo "file log writer ERRORS: ";
print_r($writer->error);
echo "<br/><br/>";
echo "file log writer WARNINGS: ";
print_r($writer->warning);
echo "<br/><br/>";
echo "file log writer state: ";
echo $writer->state;
// get logger content object
$content_obj= $logger->getLoggerContent();
// encoding example
$content_obj->setEncoding(phpWTL::SYSTEM_ENCODING);
// show what will be written...
echo "<br/><br/>content __toString(): ".$content_obj;
// if everything is ready, pass the content on to your writer.
$writer->writeToLog($content_obj);
?>