diff --git a/MANIFEST b/MANIFEST
index f6a67d7e5efb12002cbe3b939879777a00a0ff56..437fb90383583a526cfb5fb2c184e1f41846c447 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,2 +1,2 @@
-VERSION=v0.0.3
-SERVICE=evidence-collector
\ No newline at end of file
+VERSION=v0.0.4
+SERVICE=evidence-collector
diff --git a/entrypoint.sh b/entrypoint.sh
index 06f7bf63589cc86dbebbcc47bacacdf60c7e9ec6..2b06fa7983701f439ab2a1aceb006966a0aa9c8c 100755
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -12,4 +12,4 @@ rqscheduler --host $redis_host --port $redis_port &
 
 python3 -m scheduler.scheduler
 
-tail -f /dev/null
\ No newline at end of file
+tail -f /var/log/evidence_collector.log
\ No newline at end of file
diff --git a/evidence/generate_evidence.py b/evidence/generate_evidence.py
index 1c0c97d328b66f261fb6a2c269c604832e24f9b4..9e0e53c2cf965d453d50589a8f5af59ca89c6364 100644
--- a/evidence/generate_evidence.py
+++ b/evidence/generate_evidence.py
@@ -29,6 +29,6 @@ def create_evidence(id, service_id, tool_id, raw, resource):
 
     return evidence
 
-def print_evidence(evidence):
+def print_evidence(logger, evidence):
     evidence.raw = evidence.raw[:50] + "..."
-    print(evidence)    
\ No newline at end of file
+    logger.debug(evidence)
\ No newline at end of file
diff --git a/forward_evidence/forward_evidence.py b/forward_evidence/forward_evidence.py
index 9b42835804e94ddcc6c89f52622d5a0146cab09b..bc2d5f5a215e52354f6ab9960fab3e6ee24aab1d 100644
--- a/forward_evidence/forward_evidence.py
+++ b/forward_evidence/forward_evidence.py
@@ -1,26 +1,21 @@
 from evidence.evidence_store_pb2_grpc import EvidenceStoreStub
 from evidence.evidence_pb2 import Evidence
 import grpc
-import json
 
 class ForwardEvidence(object):
 
-    def __init__(self):
-        f = open('constants.json',)
-        constants = json.load(f)
-        f.close()
-
+    def __init__(self, constants, logger):
         self.channel = grpc.insecure_channel('{}:{}'.format(constants['clouditor']['host'], constants['clouditor']['port']))
-        
         self.stub = EvidenceStoreStub(self.channel)
+        self.logger = logger
 
     def send_evidence(self, evidence):
         try:
             response = self.stub.StoreEvidence(evidence)  
-            print('gRPC evidence forwarded: ' + str(response))
+            self.logger.info('gRPC evidence forwarded: ' + str(response))
         except grpc.RpcError as err:
-            print(err)
-            print(err.details())
-            print('{}, {}'.format(err.code().name, err.code().value))
+            self.logger.error(err)
+            self.logger.error(err.details())
+            self.logger.error('{}, {}'.format(err.code().name, err.code().value))
 
 
diff --git a/logging.conf b/logging.conf
new file mode 100644
index 0000000000000000000000000000000000000000..fdd026a512a2a165419f8e0457771d9a516933ac
--- /dev/null
+++ b/logging.conf
@@ -0,0 +1,28 @@
+[loggers]
+keys=root
+
+[handlers]
+keys=consoleHandler,fileHandler
+
+[formatters]
+keys=simpleFormatter
+
+[logger_root]
+level=DEBUG
+handlers=fileHandler
+
+[handler_consoleHandler]
+class=StreamHandler
+level=DEBUG
+formatter=simpleFormatter
+args=(sys.stdout,)
+
+[handler_fileHandler]
+class=FileHandler
+level=DEBUG
+formatter=simpleFormatter
+args=('/var/log/evidence_collector.log',)
+
+[formatter_simpleFormatter]
+format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
+datefmt=
diff --git a/scheduler/scheduler.py b/scheduler/scheduler.py
index bcfc9fa7baaf64b1410a33dce949e2316ac61047..01f5ad0dd53d97d282000937fa9bb4cb59a8499a 100644
--- a/scheduler/scheduler.py
+++ b/scheduler/scheduler.py
@@ -1,12 +1,8 @@
-import json
 from redis import Redis
 from rq import Queue
 from rq_scheduler import Scheduler
 from wazuh_evidence_collector import wazuh_evidence_collector
-
-f = open('constants.json',)
-constants = json.load(f)
-f.close()
+from wazuh_evidence_collector.wazuh_evidence_collector import CONSTANTS, LOGGER
 
 def remove_jobs(scheduler):
     jobs = scheduler.get_jobs()
@@ -16,10 +12,10 @@ def remove_jobs(scheduler):
 def print_jobs(scheduler):
     jobs = scheduler.get_jobs()
     for job in jobs:
-        print(job)
+        LOGGER.info(job)
 
-redis = Redis(constants['redis']['host'], constants['redis']['port'])
-q = Queue(constants['redis']['queue'], connection=redis)
+redis = Redis(CONSTANTS['redis']['host'], CONSTANTS['redis']['port'])
+q = Queue(CONSTANTS['redis']['queue'], connection=redis)
 scheduler = Scheduler(connection=redis)
 
 # TODO: Remove if needed
@@ -32,7 +28,7 @@ scheduler.cron(
     func=wazuh_evidence_collector.run_collector,                 
     args=[],
     repeat=None,
-    queue_name=constants['redis']['queue'],
+    queue_name=CONSTANTS['redis']['queue'],
     use_local_timezone=False
 )
 
diff --git a/wazuh_evidence_collector/wazuh_evidence_collector.py b/wazuh_evidence_collector/wazuh_evidence_collector.py
index 0843b5273fe962f7aa4bedfb29ce044cbab37025..fb73fc3f9d3d3ebaa16564e77d338b4487d18b26 100644
--- a/wazuh_evidence_collector/wazuh_evidence_collector.py
+++ b/wazuh_evidence_collector/wazuh_evidence_collector.py
@@ -6,23 +6,31 @@ from forward_evidence.forward_evidence import ForwardEvidence
 from evidence.generate_evidence import create_resource, create_evidence, print_evidence
 import uuid
 import configparser
+import logging
+import logging.config
 
 f = open('constants.json',)
-constants = json.load(f)
+CONSTANTS = json.load(f)
 f.close()
 
-wc = WazuhClient(constants['wazuh']['host'], constants['wazuh']['port'], constants['wazuh']['username'], constants['wazuh']['password'])
+logging.config.fileConfig('logging.conf')
+LOGGER = logging.getLogger('root')
+
+
+wc = WazuhClient(CONSTANTS['wazuh']['host'], CONSTANTS['wazuh']['port'], CONSTANTS['wazuh']['username'], CONSTANTS['wazuh']['password'])
 
 es = Elasticsearch(
-        constants['elastic']['host'],
-        http_auth=(constants['elastic']['username'], constants['elastic']['password']),
+        CONSTANTS['elastic']['host'],
+        http_auth=(CONSTANTS['elastic']['username'], CONSTANTS['elastic']['password']),
         scheme='https',
-        port=constants['elastic']['port'],
+        port=CONSTANTS['elastic']['port'],
         use_ssl=False,
         verify_certs=False,
         ssl_show_warn=False,
     )
 
+forwarder = ForwardEvidence(CONSTANTS, LOGGER)
+
 # Get ID (UUID)
 def get_id():
     id = uuid.uuid1()
@@ -62,10 +70,9 @@ def run_collector():
         evidence_list.append(generate_evidence(wc, es, agent))
 
     # TODO:
-    forwarder = ForwardEvidence()
     for evidence in evidence_list:
         forwarder.send_evidence(evidence)
-        print_evidence(evidence)
+        print_evidence(LOGGER, evidence)
 
     return evidence_list