diff --git a/profiles/slurm-conda/config.yaml b/profiles/slurm-conda/config.yaml
index dcf097604a0ff1cdb2a32f24eec2f347a196a342..2fb09692eb55b9db38d4a286bc603d6742a1c6b0 100644
--- a/profiles/slurm-conda/config.yaml
+++ b/profiles/slurm-conda/config.yaml
@@ -1,7 +1,6 @@
 jobscript: "../slurm-jobscript.sh"
 cluster: "../slurm-submit.py"
 cluster-status: "../slurm-status.py"
-config: "cluster_logs='logs/cluster'"
 snakefile: "../../workflow/Snakefile"
 cores: 256
 jobs: 256
diff --git a/profiles/slurm-config.json b/profiles/slurm-config.json
index 2de6092ffc6bd0352c332d6c7179d8d312fb365c..c64e5af63a203c568594b7b8d9bf6ac95339a694 100644
--- a/profiles/slurm-config.json
+++ b/profiles/slurm-config.json
@@ -6,7 +6,7 @@
     "cpus-per-task": "1",
     "mem": "4G",
     "job-name": "{rule}.{wildcards}",
-    "output": "logs/cluster/{rule}.{wildcards}-%j-%N.out"
+    "output": "{params.cluster_log_path}/{rule}.{wildcards}-%j-%N.out"
   },
   "create_index_star":
   {
diff --git a/profiles/slurm-singularity/config.yaml b/profiles/slurm-singularity/config.yaml
index 960bee6e95ca1380d882f7b101ec918d09724879..4fc0a6b90e85ead088aa17db3e950f6eb62f61d3 100644
--- a/profiles/slurm-singularity/config.yaml
+++ b/profiles/slurm-singularity/config.yaml
@@ -1,7 +1,6 @@
 jobscript: "../slurm-jobscript.sh"
 cluster: "../slurm-submit.py"
 cluster-status: "../slurm-status.py"
-config: "cluster_logs='logs/cluster'"
 snakefile: "../../workflow/Snakefile"
 cores: 256
 jobs: 256
diff --git a/resources/config_schema.json b/resources/config_schema.json
index 299c43a033d2102d4c96bd8c8dbc33fa66142ec9..d5b6ab9a2f352bb00136f4e6d4f8436cc3d2a3df 100644
--- a/resources/config_schema.json
+++ b/resources/config_schema.json
@@ -17,7 +17,7 @@
         "type": "string",
         "description": "Path to log directory."
       },
-      "cluster_logs": {
+      "cluster_log_dir": {
         "type": "string",
         "description": "Path to cluster log directory."
       },
diff --git a/tests/input_files/config.yaml b/tests/input_files/config.yaml
index 1fc480c3f3231780b3678691b4ff0d8195b806a1..06a97048ad5453351b71613f20ac77671729bf84 100644
--- a/tests/input_files/config.yaml
+++ b/tests/input_files/config.yaml
@@ -3,6 +3,7 @@
   samples: "../input_files/samples.tsv"
   output_dir: "results"
   log_dir: "logs"
+  cluster_log_dir: "logs/cluster"
   kallisto_indexes: "results/kallisto_indexes"
   salmon_indexes: "results/salmon_indexes"
   star_indexes: "results/star_indexes"
diff --git a/workflow/Snakefile b/workflow/Snakefile
index fb6b5a1e54679faf7d8fe8ac82090a1c39158ec7..6a53b1ff25226e89760195646fc0de6e0b35d6f4 100644
--- a/workflow/Snakefile
+++ b/workflow/Snakefile
@@ -164,6 +164,9 @@ rule start:
             "{sample}",
             "start",
             "{sample}.{mate}.fastq.gz")
+    
+    params:
+        cluster_log_path = config["cluster_log_dir"]
 
     log:
         stderr = os.path.join(
@@ -208,6 +211,7 @@ rule fastqc:
                 "{mate}"))
     
     params:
+        cluster_log_path = config["cluster_log_dir"],
         additional_params = parse_rule_config(
             rule_config,
             current_rule=current_rule,
@@ -278,6 +282,7 @@ rule create_index_star:
             "chrName.txt")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         output_dir = os.path.join(
             config['star_indexes'],
             "{organism}",
@@ -357,6 +362,7 @@ rule extract_transcriptome:
             "transcriptome.fa"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         additional_params = parse_rule_config(
             rule_config,
             current_rule=current_rule,
@@ -413,6 +419,9 @@ rule concatenate_transcriptome_and_genome:
             "transcriptome",
             "{organism}",
             "genome_transcriptome.fa"))
+    
+    params:
+        cluster_log_path = config["cluster_log_dir"]
 
     singularity:
         "docker://ubuntu:focal-20210416"
@@ -456,6 +465,7 @@ rule create_index_salmon:
                 "salmon.idx"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         kmerLen = "{kmer}",
         additional_params = parse_rule_config(
             rule_config,
@@ -514,6 +524,7 @@ rule create_index_kallisto:
             "kallisto.idx")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         output_dir = os.path.join(
             config['kallisto_indexes'],
             "{organism}"),
@@ -564,6 +575,7 @@ rule extract_transcripts_as_bed12:
             "full_transcripts_protein_coding.bed"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         additional_params = parse_rule_config(
             rule_config,
             current_rule=current_rule,
@@ -618,6 +630,7 @@ rule index_genomic_alignment_samtools:
             "{sample}.{seqmode}.Aligned.sortedByCoord.out.bam.bai")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         additional_params = parse_rule_config(
             rule_config,
             current_rule=current_rule,
@@ -696,6 +709,7 @@ rule calculate_TIN_scores:
             "TIN_score.tsv"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         sample = "{sample}",
         additional_params = parse_rule_config(
             rule_config,
@@ -760,6 +774,7 @@ rule salmon_quantmerge_genes:
             "genes_{salmon_merge_on}.tsv")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         salmon_in = expand(
             os.path.join(
                 config["output_dir"],
@@ -846,6 +861,7 @@ rule salmon_quantmerge_transcripts:
             "transcripts_{salmon_merge_on}.tsv")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         salmon_in = expand(
             os.path.join(
                 config["output_dir"],
@@ -935,6 +951,7 @@ rule kallisto_merge_genes:
             "genes_counts.tsv")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         dir_out = os.path.join(
             config["output_dir"],
             "summary_kallisto"),
@@ -1020,6 +1037,7 @@ rule kallisto_merge_transcripts:
             "transcripts_counts.tsv")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         dir_out = os.path.join(
             config["output_dir"],
             "summary_kallisto"),
@@ -1086,6 +1104,7 @@ rule pca_salmon:
             "pca_salmon_{molecule}"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         additional_params = parse_rule_config(
             rule_config,
             current_rule=current_rule,
@@ -1135,6 +1154,7 @@ rule pca_kallisto:
             "pca_kallisto_{molecule}"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         additional_params = parse_rule_config(
             rule_config,
             current_rule=current_rule,
@@ -1230,6 +1250,7 @@ rule star_rpm:
     shadow: "full"
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         out_dir = lambda wildcards, output:
             os.path.dirname(output.str1),
         prefix = lambda wildcards, output:
@@ -1327,6 +1348,9 @@ rule rename_star_rpm_for_alfa:
             "ALFA",
             "{unique}",
             "{sample}.{unique}.minus.bg"))
+    
+    params:
+        cluster_log_path = config["cluster_log_dir"]
 
     log:
         stderr = os.path.join(
@@ -1380,6 +1404,7 @@ rule generate_alfa_index:
             "sorted_genes.unstranded.ALFA_index")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         genome_index = "sorted_genes",
         out_dir = lambda wildcards, output:
             os.path.dirname(output.index_stranded),
@@ -1475,6 +1500,7 @@ rule alfa_qc:
             "{sample}.ALFA_feature_counts.tsv")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         out_dir = lambda wildcards, output:
             os.path.dirname(output.biotypes),
         genome_index = lambda wildcards, input:
@@ -1542,6 +1568,7 @@ rule prepare_multiqc_config:
             "multiqc_config.yaml")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         logo_path = config['report_logo'],
         multiqc_intro_text = config['report_description'],
         url = config['report_url'],
@@ -1661,6 +1688,7 @@ rule multiqc_report:
                 "multiqc_summary"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         results_dir = os.path.join(
             config["output_dir"]),
         log_dir = config["log_dir"],
@@ -1720,6 +1748,7 @@ rule sort_bed_4_big:
             "{sample}_{unique}_{strand}.sorted.bg"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         additional_params = parse_rule_config(
             rule_config,
             current_rule=current_rule,
@@ -1785,6 +1814,7 @@ rule prepare_bigWig:
             "{sample}_{unique}_{strand}.bw")
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         additional_params = parse_rule_config(
             rule_config,
             current_rule=current_rule,
diff --git a/workflow/rules/paired_end.snakefile.smk b/workflow/rules/paired_end.snakefile.smk
index 76a88f1dbb6f691f438136a088b73f374920d4dd..d0a9bc20bb7616a9f41c1bbd7e9ff449062b833d 100644
--- a/workflow/rules/paired_end.snakefile.smk
+++ b/workflow/rules/paired_end.snakefile.smk
@@ -31,6 +31,7 @@ rule pe_remove_adapters_cutadapt:
             "{sample}.pe.remove_adapters_mate2.fastq.gz"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         adapter_3_mate1 = lambda wildcards:
             get_sample('fq1_3p', search_id='index', search_value=wildcards.sample),
         adapter_5_mate1 = lambda wildcards:
@@ -118,6 +119,7 @@ rule pe_remove_polya_cutadapt:
             "{sample}.pe.remove_polya_mate2.fastq.gz"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         polya_3_mate1 = lambda wildcards:
             get_sample(
                 'fq1_polya_3p',
@@ -234,6 +236,7 @@ rule pe_map_genome_star:
     shadow: "minimal"
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         sample_id = "{sample}",
         index = lambda wildcards:
             os.path.abspath(os.path.join(
@@ -385,6 +388,7 @@ rule pe_quantification_salmon:
     shadow: "minimal"
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         output_dir = os.path.join(
             config["output_dir"],
             "samples",
@@ -485,6 +489,7 @@ rule pe_genome_quantification_kallisto:
     shadow: "minimal"
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         output_dir = os.path.join(
             config["output_dir"],
             "samples",
diff --git a/workflow/rules/single_end.snakefile.smk b/workflow/rules/single_end.snakefile.smk
index cd7bb1da424cce1066ebc4e6531dd3ea48204c91..7dfb2c2e2ff38968b61d29fc22773dfe45c82103 100644
--- a/workflow/rules/single_end.snakefile.smk
+++ b/workflow/rules/single_end.snakefile.smk
@@ -19,6 +19,7 @@ rule remove_adapters_cutadapt:
             "{sample}.se.remove_adapters_mate1.fastq.gz"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         adapters_3 = lambda wildcards:
             get_sample(
                 'fq1_3p',
@@ -93,6 +94,7 @@ rule remove_polya_cutadapt:
             "{sample}.se.remove_polya_mate1.fastq.gz"))
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         polya_3 = lambda wildcards:
             get_sample(
                 'fq1_polya_3p',
@@ -184,6 +186,7 @@ rule map_genome_star:
     shadow: "minimal"
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         sample_id = "{sample}",
         index = lambda wildcards:
             os.path.abspath(os.path.join(
@@ -324,6 +327,7 @@ rule quantification_salmon:
     shadow: "minimal"
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         output_dir = os.path.join(
             config["output_dir"],
             "samples",
@@ -428,6 +432,7 @@ rule genome_quantification_kallisto:
     shadow: "minimal"
 
     params:
+        cluster_log_path = config["cluster_log_dir"],
         output_dir = os.path.join(
             config["output_dir"],
             "samples",