diff --git a/val_sim.py b/val_sim.py
index 9425187269678361d96f4178292aa2d8e1a198f6..0fedc9f29945edf2bf58a194ceb160a210c0299a 100644
--- a/val_sim.py
+++ b/val_sim.py
@@ -1,59 +1,60 @@
-#The below code was referenced and modified as per the requirement from the code provided on course work desciption document.
-#The handling of the input from the  GAE(codes from line 9 to 18) are adopted from Python3 documentation https://docs.python.org/3/library/
 #!/usr/bin/python3
 
 import math, random, sys, json
 from statistics import mean, stdev
-
-
-event = json.loads(sys.stdin.read())
-
-
-dt = eval(event['key1'])
-close = eval(event['key2'])
-buy = eval(event['key3'])
-sell = eval(event['key4'])
-h = int(event['key5'])
-d = int(event['key6'])
-t = event['key7']
-minhistory = h
-shots = d
-var95_list = []
-var99_list = []
-dates = []
-
-for i in range(minhistory, len(close)):
-	if t == "buy":
-		if buy[i] == 1: 
-			close_data = close[i-minhistory:i]
-			pct_change = [(close_data[i] - close_data[i-1]) / close_data[i-1] for i in range(1,len(close_data))]
-			mean = mean(pct_change)
-			std = stdev(pct_change)
-			simulated = [random.gauss(mean,std) for x in range(shots)]
-			simulated.sort(reverse=True)
-			var95 = simulated[int(len(simulated)*0.95)]
-			var99 = simulated[int(len(simulated)*0.99)]
-			var95_list.append(var95)
-			var99_list.append(var99)
-			dates.append(str(dt[i]))
-	elif t == "sell":
-		if sell[i] == 1:
-			close_data = close[i-minhistory:i]
-			pct_change = [(close_data[i] - close_data[i-1]) / close_data[i-1] for i in range(1,len(close_data))]
-			mean = mean(pct_change)
-			std = stdev(pct_change)
-			simulated = [random.gauss(mean,std) for x in range(shots)]
-			simulated.sort(reverse=True)
-			var95 = simulated[int(len(simulated)*0.95)]
-			var99 = simulated[int(len(simulated)*0.99)]
-			var95_list.append(var95)
-			var99_list.append(var99)
-			dates.append(str(dt[i]))
-
-output = {"dates" : dates,
-		"var95" : var95_list,
-		"var99" : var99_list
-		}
-
-output = json.dumps(output)
-
+import logging
+
+logging.basicConfig(filename='/var/log/apache2/val_sim.log', level=logging.ERROR)
+
+try:
+    event = json.loads(sys.stdin.read())
+
+    dt = eval(event['key1'])
+    close = eval(event['key2'])
+    buy = eval(event['key3'])
+    sell = eval(event['key4'])
+    h = int(event['key5'])
+    d = int(event['key6'])
+    t = event['key7']
+    
+    minhistory = h
+    shots = d
+    var95_list = []
+    var99_list = []
+    dates = []
+
+    for i in range(minhistory, len(close)):
+        if t == "buy" and buy[i] == 1:
+            close_data = close[i-minhistory:i]
+            pct_change = [(close_data[i] - close_data[i-1]) / close_data[i-1] for i in range(1, len(close_data))]
+            mean_val = mean(pct_change)
+            std = stdev(pct_change)
+            simulated = [random.gauss(mean_val, std) for x in range(shots)]
+            simulated.sort(reverse=True)
+            var95 = simulated[int(len(simulated) * 0.95)]
+            var99 = simulated[int(len(simulated) * 0.99)]
+            var95_list.append(var95)
+            var99_list.append(var99)
+            dates.append(str(dt[i]))
+
+        elif t == "sell" and sell[i] == 1:
+            close_data = close[i-minhistory:i]
+            pct_change = [(close_data[i] - close_data[i-1]) / close_data[i-1] for i in range(1, len(close_data))]
+            mean_val = mean(pct_change)
+            std = stdev(pct_change)
+            simulated = [random.gauss(mean_val, std) for x in range(shots)]
+            simulated.sort(reverse=True)
+            var95 = simulated[int(len(simulated) * 0.95)]
+            var99 = simulated[int(len(simulated) * 0.99)]
+            var95_list.append(var95)
+            var99_list.append(var99)
+            dates.append(str(dt[i]))
+
+    output = {"dates": dates, "var95": var95_list, "var99": var99_list}
+    print("Content-Type: application/json")
+    print()
+    print(json.dumps(output))
+
+except Exception as e:
+    logging.error(f"Error: {e}")
+    sys.exit(1)