Leer el archivo de configuración de log4j fuera del paquete jar

Leer el archivo de configuración de log4j fuera del paquete jar

Antecedentes: eliminé todos los archivos de configuración y eliminé todos los archivos de configuración en el paquete jar. Necesita leer el archivo de configuración en el mismo directorio del paquete jar.
Inserte la descripción de la imagen aquí

  1. El archivo xml no parece estar configurado y se puede leer directamente.
  2. El archivo de configuración log4j debe agregar la siguiente declaración en la función principal (la agregué a la primera línea debajo de la función principal)
PropertyConfigurator.configure(System.getProperty("user.dir") + "/log4j.properties");

Nota: Mi archivo de propiedades se lee desde el directorio src por defecto. SiInserte la descripción de la imagen aquí
parece estar ubicado en el directorio secundario o terciario, "/log4j.properties" La configuración aquí debe cambiarse. No lo usé, así que no lo intenté.

3. Cómo leer el archivo ini

Inserte la descripción de la imagen aquí
Código relacionado:

ublic Hashtable getConfigFile(){
    
    
		Hashtable htable = new Hashtable();
		System.out.println("获取dbconfig.ini配置参数");
		FileReader fr = null;
		BufferedReader br = null;
		//String Config_dir = this.getClass().getResource("dbconfig.ini").getPath();
		try {
    
    
			fr = new FileReader(new File(FinalParam.Config_dir));
			//fr = new FileReader(new File(Config_dir));
			br = new BufferedReader(fr);
			String tmp_str = null;
			while((tmp_str = br.readLine()) != null){
    
    
				String[] cube_cfg = new String[2];
				if(tmp_str.indexOf("=") != -1){
    
    
					cube_cfg = DoSplitStr(tmp_str);
					htable.put(cube_cfg[0], cube_cfg[1]);
				}else{
    
    
					FinalParam.println("配置文件出现空行,跳过!");
				}
			}
			System.out.println("读取到配置文件配置个数:"+htable.size());
		} catch (Exception e) {
    
    
			// TODO Auto-generated catch block
			FinalParam.println("读取配置文件出错!");
			e.printStackTrace();
		}

		return htable;
	}

//在这个函数中实现的调用
    public Connection initConfig2(Connection conn) {
    
    
        System.out.println("初始化数据库链接");
        htable = dofile.getConfigFile();// 读取配置文件,初始化
        conn = dbconn.getConnection(htable);// 获取全局数据库链接
        System.out.println("获取全局数据库链接");
        //System.out.println("conn:"+conn.toString());
        if (htable == null || htable.isEmpty() || conn == null) {
    
    
            System.out.println("htable参数为空 或者 初始化连接为null");
        }
        return conn;
    }

Supongo que te gusta

Origin blog.csdn.net/zhuyin6553/article/details/108488741
Recomendado
Clasificación