[
https://issues.apache.org/jira/browse/LOG4J2-442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13862768#comment-13862768
]
Matt Sicker commented on LOG4J2-442:
------------------------------------
Alright, I've been at this for a while, and I've gotten it to work. Here's what
I did (using HSQLDB):
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<appenders>
<JDBC name="databaseAppender" tableName="log">
<ConnectionFactory class="org.mjunx.HyperConnectionFactory"
method="getDataSource"/>
<Column name="eventDate" isEventTimestamp="true"/>
<Column name="level" pattern="%level"/>
<Column name="logger" pattern="%logger"/>
<Column name="message" pattern="%message"/>
<Column name="exception" pattern="%ex{full}"/>
</JDBC>
</appenders>
<loggers>
<root level="info" includeLocation="true">
<appender-ref ref="databaseAppender"/>
</root>
</loggers>
</configuration>
{code}
And the connection factory:
{code:java}
package org.mjunx;
import org.hsqldb.jdbc.JDBCDataSourceFactory;
import javax.sql.DataSource;
import java.util.Properties;
public class HyperConnectionFactory {
private static final Properties p;
static {
p = new Properties();
p.setProperty("url", "jdbc:hsqldb:file:/opt/dev/logdb/log");
p.setProperty("user", "SA");
p.setProperty("password", "");
}
public static DataSource getDataSource() throws Exception {
return JDBCDataSourceFactory.createDataSource(p);
}
}
{code}
Since I'm not entirely sure how to set up JNDI sources in WebSphere (Liberty
profile version), I can't test that part out. I'm not entirely sure if the
DriverManager version worked or not because I was having database locking
issues from all the undeploy/deploy operations and such I've been doing to test
this out.
The only other possibly relevant things I've got for this would be my pom file:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.mjunx</groupId>
<artifactId>websphere-logging</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>websphere-logging</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0RC1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.name}</finalName>
<outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.9</version>
<configuration>
<encoding>UTF-8</encoding>
<version>6</version>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>com.ibm.websphere.wlp.maven.plugins</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>1.1</version>
<extensions>true</extensions>
<configuration>
<serverHome>/opt/dev/wlp</serverHome>
</configuration>
</plugin>
</plugins>
</build>
</project>
{code}
> Log4j2 Database insert problem in Websphere
> -------------------------------------------
>
> Key: LOG4J2-442
> URL: https://issues.apache.org/jira/browse/LOG4J2-442
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders, Configurators
> Affects Versions: 2.0-beta8
> Environment: Java Web Service in Websphere server
> Reporter: Barış Taşkend
> Priority: Blocker
>
> In my local,
> I created an log4j2.xml to config like that :
> {code:title=log4j2.xml|borderStyle=solid}
> <?xml version="1.0" encoding="UTF-8"?>
> <configuration status="OFF">
> <appenders>
> <!-- Async Loggers will auto-flush in batches, so switch off
> immediateFlush. -->
> <FastFile name="AsyncFastFile" fileName="${sys:logFilename}"
> immediateFlush="false" append="true">
> <PatternLayout>
> <pattern>test %m %m %ex%n</pattern>
> </PatternLayout>
> </FastFile>
> <JDBC name="databaseAppender" tableName="mytablename">
> <DriverManager
> url="jdbc:oracle:thin:ORCL_USERNAME/PASS@//MYSERVERNAME:PORTNO/DBNAME" />
> <Column name="KEY1" pattern="%X{sayi1}" />
> <Column name="KEY2" pattern="%X{sayi2}" />
> </JDBC>
> <JDBC name="databaseAppenderJNDI" tableName="mytablename">
> <DataSource jndiName="java:/comp/env/jdbc/logWS" />
> <Column name="KEY1" pattern="%X{sayi1}" />
> <Column name="KEY2" pattern="%X{sayi2}" />
> </JDBC>
> </appenders>
> <loggers>
> <!-- pattern layout actually uses location, so we need to include it
> -->
> <asyncLogger name="ASYNC" level="TRACE" additivity="false">
> <appender-ref ref="databaseAppender"/>
> </asyncLogger>
> <!-- pattern layout actually uses location, so we need to include it -->
> <asyncLogger name="ASYNCwithJNDI" level="TRACE" additivity="false">
> <appender-ref ref="databaseAppenderJNDI"/>
> </asyncLogger>
> <root level="info" includeLocation="true">
> <appender-ref ref="databaseAppender"/>
> </root>
> </loggers>
> </configuration>
> {code}
> I can insert logs to text file and DB by switching loggername in my java
> class which I call log function. There no problem in my local.
> In Webshere server,
> I call a web service for logging. I am using same config file and same java
> codes which calls log function. I can insert logs to a file but I can't
> insert logs to database. I tried both driverManager url and JNDI. But nothing
> changed. In two ways, I can't insert log to DB and program doesn't throw any
> error in try-catch. So I can't find problem where is.
> Note : There is no problem at JNDI url and drivermanager url. Because I can
> perfectly use these urls in different webservice in webshere. Also I can
> insert log to Database in my local with same codes.
> Note : There is no problem to insert logs to txt file. only DB insertion is
> problem in Websphere server. So there isn't problem at config file classpath.
> For your info, I am using oracle DB but the problem isn't about DB.
> I trace network packages in server and I realize that web service don't send
> any package to DB. Packages don't reach to DB.
> How can I solve this problem?
> THX.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]