forum.bitel.ru
http://forum.bitel.ru/

Работа с файлами из скриптов поведения
http://forum.bitel.ru/viewtopic.php?f=22&t=4376
Страница 1 из 1

Автор:  ODV [ 03 авг 2010, 13:51 ]
Заголовок сообщения:  Работа с файлами из скриптов поведения

Подскажите, примерчик как осуществить вывод каких-то данных в файл для реализации своих логов при выполнении скриптов

Автор:  Cromeshnic [ 03 авг 2010, 14:09 ]
Заголовок сообщения:  Re: Работа с файлами из скриптов поведения

Как-то так:
Код:
   workDirObject=new File(workDir);
   if(workDirObject.exists()&&!workDirObject.isDirectory()){
      throw new Exception("Ошибка! Целевая директория является файлом: "+workDir);
   }
   if(!workDirObject.exists()){
      print ("Создаем директорию" + workDirObject.getPath());
      if(!workDirObject.mkdir()){throw Exception("Ошибка! Невозможно создать директорию "+workDir);}
   }

   fwriter = new FileWriter(workDir+"/file.txt");
   fwriter.write("olo");
   fwriter.close();
   result+="файл "+workDir+"/file.txt записан\n";

Автор:  Cromeshnic [ 03 авг 2010, 14:10 ]
Заголовок сообщения:  Re: Работа с файлами из скриптов поведения

Но было бы забавнее логи писать через log4j

Автор:  ODV [ 03 авг 2010, 14:14 ]
Заголовок сообщения:  Re: Работа с файлами из скриптов поведения

спасибо, попробую.

Cromeshnic писал(а):
Но было бы забавнее логи писать через log4j

а примерчиком не поделитесь?

Автор:  Cromeshnic [ 03 авг 2010, 14:19 ]
Заголовок сообщения:  Re: Работа с файлами из скриптов поведения

Нет, не было нужды пока.

Автор:  Amir [ 04 авг 2010, 13:16 ]
Заголовок сообщения:  Re: Работа с файлами из скриптов поведения

Возможно с log4j будет даже проще, т.к. скрипты выполняются мультипоточно, а log4j в этом плане безопасен.
Но также надо учитывать, что из-за мультипоточного выполнения логи могут смешиваться - поэтому print() в скриптах поведения пишет сначала в буфер.
Код:
import org.apache.log4j.Logger;

#т.к. Logger threadsafe, можно определить прямо здесь
Logger logger = Logger.getLogger( "script.myscript" );

void onEvent( event, setup, con, conSlave )
{
   logger.info( "Tada" );
}
В log4j.xml добавить категорию(фильтр) и аппендер(куда писать)
Код:
   <appender name="MYSCRIPT" class="org.apache.log4j.RollingFileAppender">
      <param name="File" value="${log.dir.path}${app.id}.myscript.log" />
      <param name="MaxFileSize" value="10MB" />
      <param name="MaxBackupIndex" value="2" />
      <param name="Append" value="false" />

      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%X{nestedContext} %d{MM-dd/HH:mm:ss} %5p [%t] %c{1} - %m%n" />
      </layout>
   </appender>
   
   <category name="script.myscript" additivity="false">
      <priority value="DEBUG" />
      <appender-ref ref="MYSCRIPT" />
   </category>

Автор:  ODV [ 04 авг 2010, 13:47 ]
Заголовок сообщения:  Re: Работа с файлами из скриптов поведения

отлично, попробую:) спасибо.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/