diff --git a/.gitignore b/.gitignore
index 645dcb18ccba5a7126af5bc466d2694762baad47..342f9c76f2eec6a4f45b4a2dbd19dd974b9bd22f 100755
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ access_data.json
 save_mode.json
 creds.json
 cache/
+*.log
\ No newline at end of file
diff --git a/app.py b/app.py
index 91b126c46e4b21cace1f29b0709b16d714c3d529..dda1c626663e8b2ab4196f9aef55b808b2f9dc27 100755
--- a/app.py
+++ b/app.py
@@ -5,13 +5,21 @@ import json
 from constants import *
 from utils import *
 from lfu_checker import LFUChecker
-
+import logging
+logging.basicConfig(filename='app.log', filemode='w', format='%(name)s - %(levelname)s - %(message)s')
+import datetime
 
 app = Flask(__name__)
 app.secret_key = 'your_secret_key_here'
 app.config["CACHE_TYPE"] = "null"
 @app.route('/download/<path:filename>', methods=['GET'])
 def download_file(filename):
+    try:
+        logging.info("File: " + filename + " downloaded by " + request.remote_addr + " at " + str(datetime.datetime.now()) + " with user agent " + request.user_agent.string)
+    except Exception as e:
+        logging.exception("Exception occurred: {}".format)
+    if not check_login():
+        return redirect(url_for('login'))
     try:
         local_files = get_local_files()
         s3_files = get_s3_files()
@@ -31,9 +39,11 @@ def download_file(filename):
 def serve_thumb(filename):
     return send_from_directory('./thumb', filename)
 
-
-# check if user is logged in else redirect to login page
 def check_login():
+    try:
+        logging.info("User: " + session['username'] + " logged in at " + str(datetime.datetime.now()) + " with user agent " + request.user_agent.string)
+    except Exception as e:
+        logging.exception("Exception occurred: {}".format)
     if 'username' not in session:
         return redirect(url_for('login'))
     else:            
@@ -45,19 +55,16 @@ def check_login():
         mmisc = True if len(misc) > 5 else False
         return render_template('index.html',pdffiles=pdfs[:5], imgfiles=images[:5], videofiles=videos[:5], misc=misc[:5], mpdfs=mpdfs, mimages=mimages, mvideos=mvideos, mmisc=mmisc)
     
-# login page
+
 @app.route('/login', methods=['GET', 'POST'])
 def login():
     if request.method == 'POST':
         username = request.form['username']
         password = request.form['password']
         if (username == 'admin') and (password == 'admin'):
-            # if user is found, redirect to index page
             session['username'] = username
-
             return redirect(url_for('index'))
         else:
-            # if user is not found, redirect to login page
             flash('Invalid username or password')
             return redirect(url_for('login'))
         
@@ -166,10 +173,9 @@ def misc():
     pdfs, images, videos, misc = categorize_files(files)
     return render_template('more_files.html', files=misc, content='Misc.', fa_content='icon-sun')
 
-# logout page
+
 @app.route('/logout')
 def logout():
-    # remove the username from the session if it is there
     session.pop('username', None)
     return redirect(url_for('login'))
 
@@ -191,6 +197,11 @@ def delete_file():
         return redirect(url_for('login'))
 
     filename = request.form.get('delete-file')
+    try:
+        logging.info("Deletion User: %s, File: %s, Time: %s", session['username'], filename, datetime.datetime.now())
+    except Exception as e:
+        logging.exception("Exception occured:{}".format(e))
+
     if filename:
         local_file_path = os.path.join(os.getcwd(), 'cache', filename)
         s3_file_path = filename