Passed
Push — main ( 5572e3...b5d47c )
by Michiel
06:03
created

LogLevelAware::setLevel()   B

Complexity

Conditions 6
Paths 6

Size

Total Lines 36
Code Lines 24

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 42

Importance

Changes 0
Metric Value
eloc 24
dl 0
loc 36
ccs 0
cts 25
cp 0
rs 8.9137
c 0
b 0
f 0
cc 6
nc 6
nop 1
crap 42
1
<?php
2
3
/**
4
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
5
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
6
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
7
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
8
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
10
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
11
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
12
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
13
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
14
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15
 *
16
 * This software consists of voluntary contributions made by many individuals
17
 * and is licensed under the LGPL. For more information please see
18
 * <http://phing.info>.
19
 */
20
21
namespace Phing\Task\System\Element;
22
23
use Phing\Exception\BuildException;
24
use Phing\Project;
25
26
/**
27
 * @author   Siad Ardroumli <[email protected]>
28
 */
29
trait LogLevelAware
30
{
31
    protected $logLevel = Project::MSG_VERBOSE;
32
    protected $logLevelName = 'verbose';
33
34
    /**
35
     * Set level of log messages generated (default = verbose).
36
     *
37
     * @param string $level
38
     */
39
    public function setLevel($level): void
40
    {
41
        switch ($level) {
42
            case 'error':
43
                $this->logLevel = Project::MSG_ERR;
44
                $this->logLevelName = 'error';
45
46
                break;
47
48
            case 'warning':
49
                $this->logLevel = Project::MSG_WARN;
50
                $this->logLevelName = 'warning';
51
52
                break;
53
54
            case 'info':
55
                $this->logLevel = Project::MSG_INFO;
56
                $this->logLevelName = 'info';
57
58
                break;
59
60
            case 'verbose':
61
                $this->logLevel = Project::MSG_VERBOSE;
62
                $this->logLevelName = 'verbose';
63
64
                break;
65
66
            case 'debug':
67
                $this->logLevel = Project::MSG_DEBUG;
68
                $this->logLevelName = 'debug';
69
70
                break;
71
72
            default:
73
                throw new BuildException(
74
                    sprintf('Unknown log level "%s"', $level)
75
                );
76
        }
77
    }
78
}
79