Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

log messages aren't getting logged to the file when running via shell script

When I am running the Talend job from the open studio, it is creating a log files and printing the logger in the same. But when I build the job and execute the shell file, it doesn't create the log file. Following is the content of the log file -

 

    

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' >

<!--  CONSOLE appender  -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"  
            value="[%-5p]: %c - %m%n" />
    </layout>
</appender>

<!-- logstash appender -->
<!-- <appender name="LOGSTASH" class="org.apache.log4j.net.SocketAppender">
    <param name="RemoteHost" value="localhost"/>
    <param name="Port" value="8052"/>
</appender> -->

<appender name="APPENDER2" class="org.apache.log4j.DailyRollingFileAppender">
   <param name="File" value="D:\softwares\TOS_BD-20170510_1410-V6.4.0\workspace\logs\customlogs.txt" />
    <param name="MaxFileSize" value="1024KB"/>
    <param name="DatePattern" value="'.'yyyy_MM_dd_HH_mm"/>
   <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
   </layout>
</appender>

<logger name="m2c.entity_filter_copy_0_1">  
    <level value="debug" />  
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="APPENDER2"/>
</logger>

<!-- throwableRenderer <throwableRenderer class="org.apache.log4j.EnhancedThrowableRenderer"/>--> 

<!-- Root Logger -->  
<!--    <root>
    <priority value ="debug"/>
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="APPENDER2"/>
     <appender-ref ref="LOGSTASH"/> 
  </root>-->
  </log4j:configuration> 

I have added DailyRollingFileAppender. And following is the content of the shell script -

 

    

#!/bin/sh
cd `dirname $0`

ROOT_PATH=`pwd` java -Dlog4jEnabled=true -Xms1024M -Xmx2048M -cp
.:$ROOT_PATH:$ROOT_PATH/../lib/routines.jar:$ROOT_PATH/../lib/advancedPersistentLookupLib-1.0.jar:$ROOT_PATH/../lib/cassandra-driver-core-3.0.0.jar:$ROOT_PATH/../lib/commons-collections-3.2.2.jar:$ROOT_PATH/../lib/dom4j-1.6.1.jar:$ROOT_PATH/../lib/guava-16.0.1.jar:$ROOT_PATH/../lib/jboss-serialization.jar:$ROOT_PATH/../lib/log4j-1.2.15.jar:$ROOT_PATH/../lib/log4j-1.2.16.jar:$ROOT_PATH/../lib/metrics-core-3.1.2.jar:$ROOT_PATH/../lib/mysql-connector-java-5.1.30-bin.jar:$ROOT_PATH/../lib/netty-buffer-4.0.33.Final.jar:$ROOT_PATH/../lib/netty-codec-4.0.33.Final.jar:$ROOT_PATH/../lib/netty-common-4.0.33.Final.jar:$ROOT_PATH/../lib/netty-handler-4.0.33.Final.jar:$ROOT_PATH/../lib/netty-transport-4.0.33.Final.jar:$ROOT_PATH/../lib/slf4j-api-1.7.7.jar:$ROOT_PATH/../lib/talend-cassandra-1.1.jar:$ROOT_PATH/../lib/talendcsv.jar:$ROOT_PATH/../lib/trove.jar:$ROOT_PATH/entity_filter_copy_0_1.jar:
m2c.entity_filter_copy_0_1.entity_filter_Copy --context=Default "$@"

I read somewhere that I need to pass -Dlog4jEnabled=true in the command line to enable log4j, but that didn't work. Does anyone know how to get this done?

 

Labels (5)
1 Reply
Anonymous
Not applicable
Author

Is your log4j.xml file present in same location as your main job jar file?