You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

JADE can write a separate log file for each transfer, both when the transfer is started from the console or the chrontab.

1. To specify the log file name

The log file to be used for a particular transfer is defined in the log4j.properties file.

The log4j.properties file can be located in the same folder as the profile.ini file. The parameter defining the location of log4j does not have to be explicitly set in the profil.

A typical log4j.properties file looks like:

log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n
log4j.rootCategory=debug, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

# Configuration of the log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/var/opt/sosftp/log/sosdex.log

log4j.appender.file.MaxFileSize=10000KB

# Keep a backup copy 
log4j.appender.file.MaxBackupIndex=10

log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n

Note that:

  • the default value for stdout is set by the operating system and
  • the default location for the jade-log is:
    • /var/opt/sosftp/log/sosdex.log

JADE will overwrite the default file name with values set in the log_filename parameters.

Note also that:

  • the working directory for chron is not ./jade/bin, where the log4j file is to be found.
  • this means that when starting chron:
    • use cd to navigate to the home directory
    • start jade.sh
    • start runner-script.sh, which switches the working directory to the bin directory
    • the name of the log4j file can be set with a parameter.

A typical profile would look like:

[FTP_123]
protocol = ftps
#port = 49159
host = myHost
user = ftpUser
password = ***********
log4j_Property_FileName = /opt/sosftp/sosdex_client.1.3.12.2032/profile/log4j.properties


[TEST_FTP_REC_new]
include = FTP_123
port = 49157
log_filename = /var/opt/sosftp/log/my_logfile_name.log
#verbose = 9
history = /var/opt/sosftp/log/history_TEST_FTP_REC_new.csv
file_spec = .*\.txt
force_files = false
remove_files = true
transactional = true
atomic_suffix = .tmp
local_dir = /var/data/input/ftpReceive/
remote_dir = ./

2. To specify the log file name for each transfer

XI

die log4.jproperties ist universal. Der Name, den sie als log_filename angeben, wird, mit der extension .html erweitert, auch für log4j verwendet. Der Trick: die Definitionen in der property-datei werden dynamisch verändert. Es entstehen dann zwei Dateien: einmal die Datei mit dem Namen der in log_filename angegeben ist und dann die html-Datei mit einer Zusammenfassung des Transfers. Die html-Datei wird jedesmal überschrieben, die log-datei ist ein rollierendes Log-File.

[Transfer1]
log4j_Property_FileName = /opt/sosftp/sosdex_client.1.3.12.2207/profile/log4j.properties
log_filename = /var/opt/sosftp/log/Transfer1.log

[Transfer2]
log4j_Property_FileName = /opt/sosftp/sosdex_client.1.3.12.2207/profile/log4j.properties
log_filename = /var/opt/sosftp/log/Transfer2.log

Wenn ich die Transfers laufen lasse, sollte mir zum einen das in der log4j definierte "globale" sodex.log geschrieben werden, was auch der Fall ist, sowie das transferspezifische Transfer1.log. Dieses Log vermisse ich allerdings im dazugehoerenden Logverzeichnis (sad).

XII

Sie machen da nichts falsch. Es liegt an der log4j.properties Datei.

Meine sieht so aus:

  1. $Id: log4j.properties 17657 2012-07-23 12:55:04Z kb $

log4j.rootLoggeh1. debug, stdout
log4j.logger.JadeReportLoginfo, JadeReportLog, JadeReportLogHTML

log4j.appender.stdouh1. org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPatterh1. %t %-5p %-14d{hh:mm:ss,SSS} %p (%F:%L) ::%M %m %n

  1. Configuration as HTML
    log4j.appender.JadeReportLogHTMLorg.apache.log4j.FileAppender
    log4j.appender.JadeReportLogHTML.layouh1. org.apache.log4j.HTMLLayout
    log4j.appender.JadeReportLogHTML.File${java.io.tmpdir}/Jade-client.html
    log4j.appender.JadeReportLogHTML.Appenh1. false
    log4j.appender.JadeReportLogHTML.layout.TitleJADE - JobScheduler Advanced Data Exchange
  1. Configuration for JadeReportLog

log4j.appender.JadeReportLoh1. org.apache.log4j.RollingFileAppender
log4j.appender.JadeReportLog.File${java.io.tmpdir}/Jade-client.log
log4j.appender.JadeReportLog.MaxFileSizh1. 5000KB
log4j.appender.JadeReportLog.MaxBackupIndex30
log4j.appender.JadeReportLog.layouh1. org.apache.log4j.PatternLayout
log4j.appender.JadeReportLog.layout.ConversionPattern%-21d{hh:mm:ss,SSS}%m %n

Note that it is also possible to define a "rollingFileAppender". This configures the "global" log, which is not transfer-specific.

The transfer-specific log file is configured in the HTML appender shown in the listing above. Der Name der Datei ist in der Datei "nur" ein Platzhalter. JADE macht daraus "log_filename".html

In der jetzigen JADE-Version wird da noch ein standard-Layout von log4j verwendet, was imho nicht so nett ist. Ich habe bereits eine modifizierte Version im Einsatz, die auch z.B. Zeilenumbrüche beherscht.

  • No labels