Я пишу клиент веб-службы и использую 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;
}
}