Log4j не генерирует файл журнала в Java веб-проекте - PullRequest
0 голосов
/ 29 января 2020

Я пишу клиент веб-службы и использую JDK 1.8, WebLogi c 12 c с Log4j 1.2.16. Теперь я написал файл свойств log4j и поместил его в папку по умолчанию sr c моего проекта.

Проблема в том, что файл журнала не генерируется по нужному пути, как указано в моем файле log4j.properties.

Я проверил свой код с помощью оператора if для isDebugModeEnabled, и он возвращает true. Это означает, что файл свойств загружен. Но файл журнала не генерируется; Я проверил мою папку, она существует, и у меня есть полный доступ к ней.

Кто-нибудь может помочь?

Log4j Properties

# Root logger option
log4j.rootLogger=DEBUG, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\Users\\imjme1\\Desktop\\Work_backup\\FMS\\WebServiceLogs\\WebServiceClient.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.MaxFileSize=2MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.MaxRollFileCount=10
log4j.appender.file.RollingPolicy.ScavengeInterva=30000
log4j.appender.file.BufferedIO=false
log4j.appender.file.CompressionAlgorithm=ZIP
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p %d{dd/MM/yyyy HH:mm:ss} %l %n      %m %n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %d{dd/MM/yyyy HH:mm:ss} %l %n      %m %n
#%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

WebServiceClient. java

package com.fms.webservice.client;


/**Useful Imports for libraries and packages.*/
import java.io.InputStream;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Properties;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import org.apache.log4j.Logger;

import com.fms.webservice.AccountValidationImpl;
import com.fms.webservice.AccountValidationImplService;
import com.mysql.jdbc.CallableStatement;

import oracle.jdbc.internal.OracleTypes;

/**Initiating path for URL*/
@Path("/ublServices")
public class WebServiceClient {

        /**Final Strings to hold the database configuarational values..*/
        private static String JDBC_URL;
        private static String JDBC_USER;
        private static String JDBC_PASSWORD;
        private static String JDBC_DRIVER_CLASS;
        private static String JDBC_KEY;

        private static String configFile;
        private static WebServiceClient config;

        private Properties properties = new Properties();
        static String propFileName   = "/config.properties";
        private Logger logger         = LogManager.getInstance().getRootLogger();
        DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
/**Static variable for the config file once the class is loaded in memory..*/
        static {
            config = null;

            if (config == null) {

                config = new WebServiceClient();

                try {

                    config.init(propFileName);

                } catch (Exception io) {

                    io.printStackTrace();

                    System.out.println("");

                }
            }
        }
/**Static variables initialization for the parameters values provided in the config file.. */
        private synchronized void init(String configFileName) throws Exception {

            if (WebServiceClient.configFile == null) {

                WebServiceClient.configFile = configFileName;

                InputStream configFile = WebServiceClient.class.getResourceAsStream(configFileName);

                properties.load(configFile);

                JDBC_URL          = properties.getProperty("JDBC_URL"); // Database URL..
                JDBC_USER         = properties.getProperty("JDBC_USER"); // Database USER..
                JDBC_PASSWORD     = properties.getProperty("JDBC_PASSWORD"); // Database Password..
                JDBC_DRIVER_CLASS = properties.getProperty("JDBC_DRIVER_CLASS"); // Database Driver..
                JDBC_KEY          = properties.getProperty("JDBC_KEY"); // Encrypted Key for Password..

                properties.getProperty("PROXY_SERVER_URL");
            }
        } 

        /**Connectivity between database and web-service..*/
        public Connection returnConnection(String urId, String pass, String url) {

            Connection con = null;

            try {

                Class.forName(JDBC_DRIVER_CLASS.trim());

                con = DriverManager.getConnection(url.trim(), urId, pass);

                logger.info("connection established");

                System.out.println(logger.isDebugEnabled() + "connection established");

            } catch (Exception e) {

                    logger.info(e);

                    System.out.println(e);

            }
            return con;
        }
        @GET
        @Path("/serviceTest")
        @Produces(MediaType.APPLICATION_JSON)
        public String serviceTest() {
            System.out.println(logger.isDebugEnabled());
            return "Service is up and running";
        }

LogManager. java

package com.fms.webservice.client;

import org.apache.log4j.Logger;

public class LogManager {

    private static final LogManager instance = new LogManager();

    static {
        String ver = "1.0";
        String lastUpdatedOn = "25-April-2018";     
        getInstance().getRootLogger().fatal("Application V E R S I O N " + ver );
        getInstance().getRootLogger().fatal(lastUpdatedOn);
        getInstance().getRootLogger().fatal("====================================");
    }


    private Logger rootLogger;

    private LogManager() {
        rootLogger = Logger.getRootLogger();
    }

    public static LogManager getInstance() {
        return instance;
    }


    public Logger getRootLogger() {
        return rootLogger;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...