Uploaded by Артём Мальцев

1308.LR9

advertisement
МИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра ВТ
ОТЧЕТ
по лабораторной работе №9
по дисциплине «Объектно-ориентированное программирование»
Студент гр. 1308
Мальцев А.П.
Преподаватель
Гречухин М.Н.
Санкт-Петербург
2023
Цель работы:
Знакомство
с
методами
протоколирования
работы
приложения
использованием библиотеки Log4j.
Описание задания
1. Перечень используемых типов сообщений, которые выводятся в логфайл.
2. Конфигурационный файл log4j.properties.
3. Исходные тексты классов, где осуществляется протоколирование работы
приложения.
4. Фрагменты кода, содержащие WARN, INFO, ERROR и DEBUG
Перечень используемых типов сообщений, которые выводятся в
логфайл.:
Конфигурационный файл log4j.properties
log4j.rootLogger=DEBUG, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./Data/Library/protocol.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %-5p %c{1}:%L - %m%n
2
с
Пояснение строк:
1. Описывает уровень сообщения DEBUG c символическим названием file, на которое
будет выводиться сообщение.
2. Указывает, что сообщение будет выводиться в файл.
3. Задаёт имя и путь файлу для записи.
4. Определяет максимальный размер файла.
5. Максимальное резервное копирование.
6. Описывает формат вывода текста.
7. Вывод данных.
Фрагменты кода, содержащие WARN, INFO, ERROR и DEBUG:
private class ActFilter implements ActionListener {
/**
* Обработка действия
*/
public void actionPerformed(ActionEvent arg0) {
logGUI.info("Поиск отлея");
logGUI.warn("Есть вероятность ошибки поиска");
try {
checkName(hotels);
logGUI.debug("Ошибка не произошла");
}
catch (NullPointerException ex) {
JOptionPane.showMessageDialog(tourList, ex.toString());
logGUI.error("Пустая строчка", ex);
} catch (MyExceptionSearch myEx) {
JOptionPane.showMessageDialog(null, myEx.getMessage());
logGUI.error("Данные для поиска не введены", myEx);
}
}
}
private class ActDelete implements ActionListener{
/**
* Обработка действия
*/
public void actionPerformed (ActionEvent event)
{
logGUI.info("Удаление строки");
3
logGUI.warn("Есть вероятность ошибки удаления");
final String TITLE_confirm = "Окно подтверждения";
int result = JOptionPane.showConfirmDialog(deleteButon,
"Вы уверены что хотите удалить строчку?",
TITLE_confirm,
0,
JOptionPane.WARNING_MESSAGE);
if (result == JOptionPane.YES_OPTION) {
try{
deleteTable(tours);
logGUI.debug("Ошибка не произошла");
}
catch(MyExceptionDelete myEx) {
JOptionPane.showMessageDialog(null, myEx.getMessage());
logGUI.error("Пустая таблица", myEx);
}
}
}
}
private class ActXml implements ActionListener{
/**
* Обработка действия
*/
public void actionPerformed (ActionEvent event)
{
final String TITLE_confirm = "Окно подтверждения";
int result = JOptionPane.showConfirmDialog(xmlButon,
"Открыть или сохранить xml?",
TITLE_confirm,
2,
JOptionPane.QUESTION_MESSAGE );
if (result == JOptionPane.OK_OPTION) {
logGUI.info("Открытие XML");
logGUI.warn("Есть вероятность ошибки открытия");
try {
xmlOpen q = new xmlOpen("Открыть данные XML",model,tours);
logGUI.debug("Ошибка не произошла");
} catch (Exception e) {
4
// TODO Auto-generated catch block
e.printStackTrace();
logGUI.error("Ошибка открытия", e);
}
}
else if(result == JOptionPane.CANCEL_OPTION) {
logGUI.info("Сохранение XML");
logGUI.warn("Есть вероятность ошибки сохранения");
try {
xmlSave q = new xmlSave("Сохранение данных XML",model);
logGUI.debug("Ошибка не произошла");
} catch (Exception e1) {
e1.printStackTrace();
logGUI.error("Ошибка сохранения", e1);
}
}
}
}
private class ActAdd implements ActionListener{
/**
* Обработка нажатия
*/
public void actionPerformed (ActionEvent event)
{
logGUI.info("Добавление тура");
((DefaultTableModel)tours.getModel()).addRow(new Object[]{"Тест", "Тест",
"Тест","Тест","Тест"});
}
}
private class ActPdf implements ActionListener{
/**
* Обработка нажатия
*/
@SuppressWarnings("static-access")
public void actionPerformed (ActionEvent event)
{
5
logGUI.info("Генерирование отчета PDF");
PdfHtml qwe = new PdfHtml(model);
//pdf = new print("C:\\Users\\Irbis\\Documents\\ООП\\Пример для
открытия.xml","XPath","report3.jrxml","OtchetPdf");
}
}
private class ActOpen implements ActionListener{
/**
* Обработка нажатия
*/
public void actionPerformed (ActionEvent event)
{
logGUI.info("Открытие текстового файла");
FileOpen file = new FileOpen("Открытие данных",model);
}
}
private class ActSave implements ActionListener{
/**
* Обработка нажатия
*/
public void actionPerformed (ActionEvent event)
{
logGUI.info("Сохранение текстового файла");
FileSave file = new FileSave("Сохранение данных данных",model);
}
}
public static void main(String[] args) {
logGUI.info("Запуск программы");
new Gui().show();
}
6
Download