Guest User

Log4j Upgrade

a guest
Feb 6th, 2024
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | None | 0 0
  1. walk_dir = '<path/to/cloudstack/repository>'
  2.  
  3. for root, subdirs, files in os.walk(walk_dir):
  4.     for filename in files:
  5.         if not filename.endswith('.java'):
  6.             continue
  7.  
  8.         file_path = os.path.join(root, filename)
  9.         print("Processing \t" + filename)
  10.  
  11.         with (open(file_path) as file):
  12.             file_content = file.read()
  13.  
  14.             # Update imports
  15.             if "org.apache.log4j.Logger" in file_content:
  16.                 subprocess.run("sed -i 's/import org.apache.log4j.Logger;/import org.apache.logging.log4j.Logger;/g' {}"
  17.                                .format(file_path), shell=True)
  18.                 subprocess.run(
  19.                     "sed -i '/import org.apache.logging.log4j.Logger;/a import org.apache.logging.log4j.LogManager;' "
  20.                     "{}".format(file_path), shell=True)
  21.  
  22.             if "consoleproxy.util.Logger" not in file_content and "package com.cloud.consoleproxy.util;" not in file_content:
  23.                 subprocess.run("sed -i 's/Logger\.getLogger/LogManager.getLogger/g' {}".format(file_path), shell=True)
  24.  
  25.             # Normalize s_logger to logger
  26.             subprocess.run("sed -i 's/s_logger/logger/g' {}".format(file_path), shell=True)
  27.  
  28.             # Update static loggers to LOGGER
  29.  
  30.             if "static Logger logger" in file_content:
  31.                 subprocess.run("sed -i 's/logger/LOGGER/g' {}".format(file_path), shell=True)
  32.             if "private static final Logger logger" in file_content:
  33.                 subprocess.run("sed -i 's/private static final Logger logger/protected static Logger LOGGER/g' {}"
  34.                                .format(file_path), shell=True)
  35.                 subprocess.run("sed -i 's/logger/LOGGER/g' {}".format(file_path), shell=True)
Advertisement
Add Comment
Please, Sign In to add comment