-
Notifications
You must be signed in to change notification settings - Fork 0
/
logger.ps1
112 lines (96 loc) · 2.03 KB
/
logger.ps1
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<#
Copyright 2018 VMware, Inc. All rights reserved.
#>
# Messages
$HEADER_OK = "[OK] "
$HEADER_INFO = "[INFO] "
$HEADER_WARNING = "[WARNING] "
$HEADER_ERR = "[ERROR] "
Class DebugLog
{
# Static variables of the logger class
static [string] $CAFILE_PATH = "./.certs/"
[boolean] $debug
[string] $logfile
DebugLog()
{
$this.debug = $false
$this.logfile = $null
if (!(Test-Path $this::CAFILE_PATH))
{
New-Item -Type directory -Confirm:$false -Path $this::CAFILE_PATH
}
}
[void] SetDebug(
[boolean] $debug,
[string] $hostname
){
if (!$hostname) {$hostname = ''}
$this.debug = $debug
if ($this.debug)
{
$this.logfile = $this::CAFILE_PATH + $hostname + [DateTime]::Now.ToString("_yyyy-MM-dd_HH-mm") + ".log"
}else{
$this.logfile = $null
}
}
[void] log_vars(
[string] $message,
[object] $var
){
$this.log($message + $var)
}
[void] log(
[string] $message
){
if (!$this.debug -or !$this.logfile) {return}
try
{
$message | Out-File $this.logfile -Append
}catch {
Out-Host -InputObject ("[Exception] Failed to write to a logfile: " + $this.logfile)
Out-Host -InputObject $_
}
}
}
Function debug_vars(
[string] $message,
[object] $var)
{
$logger.log_vars($message, $var)
}
Function debug(
[string] $message)
{
$logger.log($message)
}
Function vcglog(
[string] $message,
[string] $header="")
{
$msg = $header + $message
$logger.log($msg)
Out-Host -InputObject $msg
}
Function ok(
[string] $message)
{
vcglog $message $HEADER_OK
}
Function warning(
[string] $message)
{
vcglog $message $HEADER_WARNING
}
Function info(
[string] $message)
{
vcglog $message $HEADER_INFO
}
Function error(
[string] $message)
{
vcglog $message $HEADER_ERR
}
$logger = [DebugLog]::new()
$logger.SetDebug($true, "vcc-debug")