Skip to content

Commit a953cac

Browse files
committed
New logging working in container.
1 parent 2fff3e1 commit a953cac

File tree

6 files changed

+92
-3
lines changed

6 files changed

+92
-3
lines changed

Dockerfile

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,25 @@ RUN mkdir /download && \
3030
tar xzf apache-tomcat-*tar.gz && \
3131
mv apache-tomcat-9.0.112 /usr/local/tomcat/ && \
3232
cd / && \
33-
rm -rf /download && \
3433
rm -rf /usr/local/tomcat/webapps/* && \
3534
mkdir /usr/local/tomcat/webapps/ROOT && \
36-
echo "<html><body>Nothing to see here</body></html>" > /usr/local/tomcat/webapps/ROOT/index.html
35+
echo "<html><body>Nothing to see here</body></html>" > /usr/local/tomcat/webapps/ROOT/index.html && \
36+
mkdir -p /usr/local/tomecat/conf/Catalina/localhost
37+
# Now replace the Tomcat logging with logback
38+
# NOTE: I have review this method in jd-gui and do not see anything malicious, packages are isolated to avoid issues
39+
# with other code.
40+
# Additionally, when we are not also accounting for some legacy systems, we will likely shift to
41+
# Jetty to simplify the deployment process, making this subtitution unnecessary.
42+
RUN cd /download && \
43+
wget https://repo1.maven.org/maven2/com/github/tomcat-slf4j-logback/tomcat9-slf4j-logback/9.0.115/tomcat9-slf4j-logback-9.0.115.jar && \
44+
echo "cb463fb246fbb326d91b04a7280474f2b722b11cc9d3d7f6c3dbbefcff2c07e055f479d436ab785668d6fa90d0bfd325c86c4fa3a9ad9521159a2a3114916d91 *tomcat9-slf4j-logback-9.0.115.jar" > checksum.logback.txt && \
45+
sha512sum -c checksum.logback.txt
46+
RUN cd /download && \
47+
cp tomcat9-slf4j-logback-9.0.115.jar /usr/local/tomcat/bin/tomcat-juli.jar && \
48+
rm /usr/local/tomcat/conf/logging.properties && \
49+
rm -rf /download
50+
51+
3752
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
3853

3954
FROM tomcat_base AS api
@@ -43,6 +58,9 @@ COPY --from=builder /builddir/cwms-data-api/build/docker/context.xml /usr/local/
4358
COPY --from=builder /builddir/cwms-data-api/build/docker/server.xml /usr/local/tomcat/conf
4459
COPY --from=builder /builddir/cwms-data-api/build/docker/setenv.sh /usr/local/tomcat/bin
4560
COPY --from=builder /builddir/cwms-data-api/build/docker/libs/ /usr/local/tomcat/lib
61+
COPY --from=builder /builddir/cwms-data-api/build/docker/logback.xml /logback.xml
62+
COPY --from=builder /builddir/cwms-data-api/build/docker/logback-juli.xml /logback-juli.xml
63+
COPY --from=builder /builddir/cwms-data-api/build/docker/app-context.xml /usr/local/tomcat/conf/Catalina/localhost/cwms-data.xml
4664

4765
ENV CDA_JDBC_DRIVER="oracle.jdbc.driver.OracleDriver"
4866
ENV CDA_JDBC_URL=""

cwms-data-api/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ task prepareDockerBuild(type: Copy, dependsOn: war) {
315315

316316
from(configurations.baseLibs) {
317317
into "libs"
318+
//exclude "**/logback*"
318319
}
319320

320321
from(sourceSets.test.resources) {
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Context antiResourceLocking="true" delegate="true">
3+
<ResourceLink
4+
name="jdbc/CWMS3"
5+
global="jdbc/CWMS3"
6+
type="javax.sql.DataSource"
7+
/>
8+
</Context>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE configuration>
3+
<configuration debug="true">
4+
<import class="org.apache.juli.logging.ch.qos.logback.classic.encoder.JsonEncoder"/>
5+
<import class="org.apache.juli.logging.ch.qos.logback.core.ConsoleAppender"/>
6+
7+
<variable name="LOG_LEVEL" value="${LOG_LEVEL:-INFO}"/>
8+
<contextName>CWMS-Data-API</contextName>
9+
<appender name="STDERR" class="ConsoleAppender">
10+
<encoder class="JsonEncoder"/>
11+
<target>System.err</target>
12+
</appender>
13+
14+
<logger name="cwms.cda" level="${LOG_LEVEL}"/>
15+
<logger name="org.apache" level="ERROR"/>
16+
17+
<logger name="org.apache.catalina" level="INFO" additivity="false">
18+
<appender-ref ref="STDERR" />
19+
</logger>
20+
21+
<logger name="org.apache.catalina.core.ContainerBase.[Catalina]" level="INFO" additivity="false">
22+
<appender-ref ref="STDERR" />
23+
</logger>
24+
25+
26+
<root level="INFO">
27+
<appender-ref ref="STDERR"/>
28+
</root>
29+
</configuration>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE configuration>
3+
<configuration debug="true">
4+
<import class="ch.qos.logback.classic.encoder.JsonEncoder"/>
5+
<import class="ch.qos.logback.core.ConsoleAppender"/>
6+
7+
<variable name="LOG_LEVEL" value="${LOG_LEVEL:-INFO}"/>
8+
<contextName>CWMS-Data-API</contextName>
9+
<appender name="STDERR" class="ConsoleAppender">
10+
<encoder class="JsonEncoder"/>
11+
<target>System.err</target>
12+
</appender>
13+
14+
<logger name="cwms.cda" level="${LOG_LEVEL}"/>
15+
<logger name="org.apache" level="ERROR"/>
16+
17+
<logger name="org.apache.catalina" level="INFO" additivity="false">
18+
<appender-ref ref="STDERR" />
19+
</logger>
20+
21+
<logger name="org.apache.catalina.core.ContainerBase.[Catalina]" level="INFO" additivity="false">
22+
<appender-ref ref="STDERR" />
23+
</logger>
24+
25+
26+
<root level="INFO">
27+
<appender-ref ref="STDERR"/>
28+
</root>
29+
</configuration>

cwms-data-api/src/docker/setenv.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
export CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource"
1+
CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource"
2+
CATALINA_OPTS="$CATALINA_OPTS -Djuli-logback.configurationFile=/logback-juli.xml -Djuli-logback.ContextSelector=JNDI"
3+
CATALINA_OPTS="$CATALINA_OPTS -Dlogback.configurationFile=/logback.xml -Dlogback.ContextSelector=JNDI"
4+
5+
export CATALINA_OPTS

0 commit comments

Comments
 (0)