Arquivo de log ausente

0

Eu escrevi um arquivo .jar que deve ser executado uma vez por dia e interage com o Google App Engine. Quando eu corro do computador, ele roda muito bem e cria um arquivo de log que detalha algumas estatísticas. Eu transferi para um Raspberry Pi e ele roda via crontab.

Na primeira vez que o executei, recebi uma permissão negada no syslog. Eu li que usar 'sudo crontab -e' resolveria isso. Agora eu não recebo mais o erro, mas meu arquivo de log não aparece.

Aqui está a parte do código que deve criar o arquivo de log:

PrintWriter writer = new PrintWriter("log" + format.format(date) + ".txt");
writer.println("Total Themes: " + numThemes + "\r\n");
writer.println("Active Themes: " + numActiveThemes + "\r\n");
writer.println("Inactive Themes: " + numInactiveThemes + "\r\n");
writer.println("Total Sales: " + numSales + "\r\n");
writer.println("Total Price Changes: " + numPriceChanges + "\r\n");
writer.println("Total Time: " + seconds + " seconds" + "\r\n");
writer.close();

Crontab:

0 2 * * * java -jar /mnt/data/scripts/updater_pricing.jar

O que eu estou perdendo sobre o switch do Windows que está impedindo a criação do arquivo de log?

Edit: Eu posso executar o arquivo .jar manualmente (usando sudo java -r /mnt/data/scripts/updater_pricing.jar ) e o arquivo de log é criado. Não funciona w / cron embora.

Editar2: /etc/log/syslog tem:

Feb  8 21:46:01 raspberrypi /USR/SBIN/CRON[10841]: (root) CMD (java -jar /mnt/data/scripts/updater_pricing.jar
    
por easycheese 09.02.2015 / 04:09

1 resposta

1

Descobri isso. O e-mail estava sendo enviado porque eu tinha algumas linhas de System.out.println()

Os arquivos de log estavam sendo criados, apenas no lugar errado. Eu tive que modificar a linha do arquivo original para:

PrintWriter writer = new PrintWriter("/mnt/data/scripts/" + "log" + format.format(date) + ".txt");
    
por easycheese 11.02.2015 / 00:27