-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathParse.pl
More file actions
119 lines (110 loc) · 2.76 KB
/
Parse.pl
File metadata and controls
119 lines (110 loc) · 2.76 KB
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
113
114
115
116
117
118
119
#Author: David Walshe
#Date: 02/10/2017
#Description: This script is used to format the XML output of the Java logger class
# The logger class should be set up to save to a file with a filehandler to make use of this script.
use strict;
use warnings;
my $inFile = "C:/Users/David/Desktop/Client-Server/Assignment_1_Thread_Safe_GUI/GUI.log";
my $outFile = "C:/Users/David/Desktop/Client-Server/Assignment_1_Thread_Safe_GUI/GUI_parsed.log";
open(my $readFile, $inFile);
open(my $writeFile, ">$outFile");
my $sequence = "";
my $class = "";
my $message = "";
my $method = "";
my $thread = "";
my $dateTime = "";
my $logMsg = "";
my $date = "";
my $time = "";
my $level = "";
while(<$readFile>)
{
if(/<sequence>/)
{
$sequence = extractXMLTag($_);
}
elsif(/<class>/)
{
$class = extractXMLTag($_);
}
elsif(/<thread>/)
{
$thread = extractXMLTag($_);
}
elsif(/<method>/)
{
$method = extractXMLTag($_);
}
elsif(/<message>/)
{
$message = extractXMLTag($_);
}
elsif(/<level>/)
{
$level = extractXMLTag($_);
}
elsif(/<date>/)
{
$dateTime = extractXMLTag($_);
my @arr = split("T", $dateTime);
$date = $arr[0];
$time = $arr[1];
}
elsif(/<\/record>/)
{
$logMsg = "Sequence ID:\t$sequence\nLog Time:\t\t$time $date\nCalled From:\t$class->$method\nThread ID:\t\t$thread\nLevel:\t\t\t$level\nMessage:\t\t$message\n-----------------------------------------------------------------------------------------\n";
#$logMsg = replace($logMsg, ">", ">");
#$logMsg = replace($logMsg, "<", "<");
print $writeFile $logMsg;
$sequence = "";
$class = "";
$message = "";
$method = "";
$thread = "";
$logMsg = "";
$dateTime = "";
$date = "";
$time = "";
}
}
sub extractXMLTag
{
my $string = $_[0];
my $startIndex = index($string, ">") + 1;
my $endIndex = lastIndex($string, "<");
my $tag = substr $string, $startIndex, $endIndex-$startIndex;
return $tag;
}
sub lastIndex
{
my $indx = 0;
my $temp = 0;
my $string = $_[0];
my $char = $_[1];
while($temp != -1)
{
$temp = index($string, $char, $temp+1);
if($temp != -1)
{
$indx = $temp;
}
}
return $indx;
}
sub replace
{
my $string = $_[0];
my $replaceStr = $_[1];
my $newStr = $_[2];
my $len = length($replaceStr);
my $i = 0;
while(index($string, $replaceStr) != -1)
{
$i = index($string, $replaceStr);
my $preStr = substr($string, 0, $i);
my $postStr = substr($string, $i+$len);
$string = $preStr . $newStr . $postStr;
}
return $string;
}