diff --git a/Makefile b/Makefile
index 30a1cb2..1399ffb 100644
--- a/Makefile
+++ b/Makefile
@@ -122,11 +122,18 @@ install: check uninstall
@sed -e 's+/usr/bin+${PREFIX}/bin+' -e 's+.run+${PKGIDENT}.run+g' ./compile/com.ublinux.${PKGNAME}${PKGIDENT}.policy -i
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
- @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
- @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
- @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "com.ublinux.${PKGNAME}.view-symbolic.svg"
- @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "com.ublinux.${PKGNAME}.zoom-symbolic.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.checked.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.warning.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.view-symbolic.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.play-symbolic.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.stop-symbolic.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.zoom-symbolic.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.back-symbolic.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.increase-symbolic.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.decrease-symbolic.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.profile-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "journals_list.csv"
+ @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "logging_services.csv"
@install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
@if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \
diff --git a/gresource.xml b/gresource.xml
index f066c56..1914fde 100644
--- a/gresource.xml
+++ b/gresource.xml
@@ -4,6 +4,9 @@
ubl-settings-logging.glade
ubl-settings-logging-add.glade
ubl-settings-logging-inspector.glade
+ ubl-settings-logging-logrotate.glade
+ ubl-settings-logging-journald.glade
+ ubl-settings-logging-logrotate-table.glade
ubl-settings-logging.css
diff --git a/icons/com.ublinux.ubl-settings-logging.back-symbolic.svg b/icons/com.ublinux.ubl-settings-logging.back-symbolic.svg
new file mode 100644
index 0000000..3e0225a
--- /dev/null
+++ b/icons/com.ublinux.ubl-settings-logging.back-symbolic.svg
@@ -0,0 +1,47 @@
+
+
diff --git a/com.ublinux.ubl-settings-logging.checked.svg b/icons/com.ublinux.ubl-settings-logging.checked.svg
similarity index 100%
rename from com.ublinux.ubl-settings-logging.checked.svg
rename to icons/com.ublinux.ubl-settings-logging.checked.svg
diff --git a/icons/com.ublinux.ubl-settings-logging.decrease-symbolic.svg b/icons/com.ublinux.ubl-settings-logging.decrease-symbolic.svg
new file mode 100644
index 0000000..1413e10
--- /dev/null
+++ b/icons/com.ublinux.ubl-settings-logging.decrease-symbolic.svg
@@ -0,0 +1,40 @@
+
+
diff --git a/icons/com.ublinux.ubl-settings-logging.increase-symbolic.svg b/icons/com.ublinux.ubl-settings-logging.increase-symbolic.svg
new file mode 100644
index 0000000..800b264
--- /dev/null
+++ b/icons/com.ublinux.ubl-settings-logging.increase-symbolic.svg
@@ -0,0 +1,40 @@
+
+
diff --git a/icons/com.ublinux.ubl-settings-logging.play-symbolic.svg b/icons/com.ublinux.ubl-settings-logging.play-symbolic.svg
new file mode 100644
index 0000000..3ebe8f3
--- /dev/null
+++ b/icons/com.ublinux.ubl-settings-logging.play-symbolic.svg
@@ -0,0 +1,169 @@
+
+
+
+
diff --git a/icons/com.ublinux.ubl-settings-logging.profile-symbolic.svg b/icons/com.ublinux.ubl-settings-logging.profile-symbolic.svg
new file mode 100644
index 0000000..4bc7b0c
--- /dev/null
+++ b/icons/com.ublinux.ubl-settings-logging.profile-symbolic.svg
@@ -0,0 +1,49 @@
+
+
+
+
diff --git a/icons/com.ublinux.ubl-settings-logging.stop-symbolic.svg b/icons/com.ublinux.ubl-settings-logging.stop-symbolic.svg
new file mode 100644
index 0000000..91f45bc
--- /dev/null
+++ b/icons/com.ublinux.ubl-settings-logging.stop-symbolic.svg
@@ -0,0 +1,185 @@
+
+
+
+
diff --git a/com.ublinux.ubl-settings-logging.view-symbolic.svg b/icons/com.ublinux.ubl-settings-logging.view-symbolic.svg
similarity index 100%
rename from com.ublinux.ubl-settings-logging.view-symbolic.svg
rename to icons/com.ublinux.ubl-settings-logging.view-symbolic.svg
diff --git a/com.ublinux.ubl-settings-logging.warning.svg b/icons/com.ublinux.ubl-settings-logging.warning.svg
similarity index 100%
rename from com.ublinux.ubl-settings-logging.warning.svg
rename to icons/com.ublinux.ubl-settings-logging.warning.svg
diff --git a/com.ublinux.ubl-settings-logging.zoom-symbolic.svg b/icons/com.ublinux.ubl-settings-logging.zoom-symbolic.svg
similarity index 100%
rename from com.ublinux.ubl-settings-logging.zoom-symbolic.svg
rename to icons/com.ublinux.ubl-settings-logging.zoom-symbolic.svg
diff --git a/logging_services.csv b/logging_services.csv
new file mode 100644
index 0000000..ccc34a9
--- /dev/null
+++ b/logging_services.csv
@@ -0,0 +1,4 @@
+journald;Системный журнал событий;systemctl start;systemctl start systemd-journald.service;systemctl stop systemd-journald.service;ubconfig set config SERVICESSTART+=systemd-journald.service;ubconfig set config SERVICESSTART-=systemd-journald.service;systemctl status systemd-journald.service
+logrotate;Служба ротации системных журналов событий;systemctl start logrotate.service;systemctl stop logrotate.service;ubconfig set config SERVICESSTART+=logrotate.service;ubconfig set config SERVICESSTART-=logrotate.service;systemctl status logrotate.service
+metalog;Системный журнал событий;systemctl start metalog.service;systemctl stop metalog.service;ubconfig set config SERVICESSTART+=metalog.service;ubconfig set config SERVICESSTART-=metalog.service;systemctl status metalog.service
+syslog-ng;Сервис сбора сообщений системных событий активных сетевых устройств;systemctl start syslog-ng.service;systemctl stop syslog-ng.service;ubconfig set config SERVICESSTART+=syslog-ng.service;ubconfig set config SERVICESSTART-=syslog-ng.service;systemctl status syslog-ng.service
\ No newline at end of file
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 93e0050..c9220c0 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -38,6 +38,9 @@ set(DEPENDFILES
../ubl-settings-logging.glade
../ubl-settings-logging-add.glade
../ubl-settings-logging-inspector.glade
+ ../ubl-settings-logging-journald.glade
+ ../ubl-settings-logging-logrotate.glade
+ ../ubl-settings-logging-logrotate-table.glade
../gresource.xml
../ubl-settings-logging-banner.png
../ubl-settings-logging.css
diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c
index 60fa266..3b35ba2 100644
--- a/source/ubl-settings-logging.c
+++ b/source/ubl-settings-logging.c
@@ -107,6 +107,28 @@ void yon_load_proceed(char *command){
}
+add_log_window *on_add_open(){
+ add_log_window *window = malloc(sizeof(add_log_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_add_path);
+ window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
+ window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
+ window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
+ window->LogAddingBox=yon_gtk_builder_get_widget(builder,"LogAddingBox");
+ window->LogTypeCombo=yon_gtk_builder_get_widget(builder,"LogTypeCombo");
+ window->LogPathEntry=yon_gtk_builder_get_widget(builder,"LogPathEntry");
+ window->LogFindButton=yon_gtk_builder_get_widget(builder,"LogFindButton");
+ window->LogDescriptionEntry=yon_gtk_builder_get_widget(builder,"LogDescriptionEntry");
+ window->LogrotateButton=yon_gtk_builder_get_widget(builder,"LogrotateButton");
+ window->MetalogButton=yon_gtk_builder_get_widget(builder,"MetalogButton");
+ window->SyslogButton=yon_gtk_builder_get_widget(builder,"SyslogButton");
+ window->JournaldButton=yon_gtk_builder_get_widget(builder,"JournaldButton");
+ window->LogSizeLabel=yon_gtk_builder_get_widget(builder,"LogSizeLabel");
+ window->StatisticsFrame=yon_gtk_builder_get_widget(builder,"StatisticsFrame");
+ gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
+ g_signal_connect(G_OBJECT(window->CancelButton),"clicked", G_CALLBACK(on_close_subwindow),NULL);
+ return window;
+}
+
void on_inspector_update(GtkWidget *self, inspector_window *window){
int size;
GtkTextIter titer,titerend;
@@ -143,13 +165,14 @@ void on_inspector_update(GtkWidget *self, inspector_window *window){
window->last_mode=4;
output = yon_config_load(get_journal_output_prioritied_command, &size);
}
- for (int i=0;itextbuffer1,&titer);
+ gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1);
+ }
gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
- gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1);
+ gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTextView),&titer,0.25,0,1,0);
}
- gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
- gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTextView),&titer,0.25,0,1,0);
-
}
void on_inspector_open(GtkWidget *self, main_window *widgets){
@@ -185,41 +208,6 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){
}
}
-add_log_window *yon_log_open(main_window *widgets){
- add_log_window *window = malloc(sizeof(add_log_window));
- GtkBuilder *builder = gtk_builder_new_from_resource(glade_add_path);
- window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
- window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
- window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
- window->LogTypeCombo=yon_gtk_builder_get_widget(builder,"LogTypeCombo");
- window->LogPathEntry=yon_gtk_builder_get_widget(builder,"LogPathEntry");
- window->LogFindButton=yon_gtk_builder_get_widget(builder,"LogFindButton");
- window->LogDescriptionEntry=yon_gtk_builder_get_widget(builder,"LogDescriptionEntry");
- window->editingBox=yon_gtk_builder_get_widget(builder,"editingBox");
- window->FileAmountCheck=yon_gtk_builder_get_widget(builder,"FileAmountCheck");
- window->FileAmountSpin=yon_gtk_builder_get_widget(builder,"FileAmountSpin");
- window->FileSizeCheck=yon_gtk_builder_get_widget(builder,"FileSizeCheck");
- window->FileSizeSpin=yon_gtk_builder_get_widget(builder,"FileSizeSpin");
- window->FileSizeCombo=yon_gtk_builder_get_widget(builder,"FileSizeCombo");
- window->RotationPeriodCheck=yon_gtk_builder_get_widget(builder,"RotationPeriodCheck");
- window->RotationPeriodCombo=yon_gtk_builder_get_widget(builder,"RotationPeriodCombo");
- window->JournalSizeCheck=yon_gtk_builder_get_widget(builder,"JournalSizeCheck");
- window->JournalSizeSpin=yon_gtk_builder_get_widget(builder,"JournalSizeSpin");
- window->JournalSizeCombo=yon_gtk_builder_get_widget(builder,"JournalSizeCombo");
- window->JournalGatheringPeriodCheck=yon_gtk_builder_get_widget(builder,"JournalGatheringPeriodCheck");
- window->JournalGatheringPeriodCombo=yon_gtk_builder_get_widget(builder,"JournalGatheringPeriodCombo");
- window->logSizeLabel=yon_gtk_builder_get_widget(builder,"logSizeLabel");
- window->diskSizeLabel=yon_gtk_builder_get_widget(builder,"diskSizeLabel");
- window->LogSettingsBox=yon_gtk_builder_get_widget(builder,"LogSettingsBox");
- window->JournalSettingsBox=yon_gtk_builder_get_widget(builder,"JournalSettingsBox");
- window->LogEditingBox=yon_gtk_builder_get_widget(builder,"LogEditingBox");
- window->LogAddingBox=yon_gtk_builder_get_widget(builder,"LogAddingBox");
- window->LogNameLabel=yon_gtk_builder_get_widget(builder,"LogNameLabel");
- g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
-
- return window;
-}
-
void on_log_choose(GtkWidget *self,add_log_window *window){
GtkWidget *dialog = gtk_file_chooser_dialog_new(TITLE_LABEL,GTK_WINDOW(window->MainWindow),GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL);
gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(dialog),yon_ubl_user_get_home_directory(),NULL);
@@ -237,114 +225,220 @@ void on_log_choose(GtkWidget *self,add_log_window *window){
gtk_widget_destroy(dialog);
}
-void on_log_save(GtkWidget *self, dictionary *dict){
- main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
- add_log_window *window = yon_dictionary_get_data(dict->first->next,add_log_window*);
- char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->LogPathEntry));
- const char *description = gtk_entry_get_text(GTK_ENTRY(window->LogDescriptionEntry));
- char *path = yon_char_divide(name,yon_char_find_last(name,'/'));
- GtkTreeIter iter;
- gtk_list_store_append(widgets->list,&iter);
- gtk_list_store_set(widgets->list,&iter,0,name,1,path,2,description,-1);
- gtk_widget_destroy(window->MainWindow);
+logrotate_configure_window *yon_logrotate_window_new(){
+ logrotate_configure_window *window = malloc(sizeof(logrotate_configure_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_logrotate_path);
+ window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
+ window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
+ window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
+ window->LogNamelabel=yon_gtk_builder_get_widget(builder,"LogNamelabel");
+ window->LogNameButton=yon_gtk_builder_get_widget(builder,"LogNameButton");
+ window->RotationPeriodCheck=yon_gtk_builder_get_widget(builder,"RotationPeriodCheck");
+ window->RotationPeriodMainCombo=yon_gtk_builder_get_widget(builder,"RotationPeriodMainCombo");
+ window->RotationPeriodAdditionalCombo=yon_gtk_builder_get_widget(builder,"RotationPeriodAdditionalCombo");
+ window->JournalMaxSizeCheck=yon_gtk_builder_get_widget(builder,"JournalMaxSizeCheck");
+ window->JournalMaxSizeSpin=yon_gtk_builder_get_widget(builder,"JournalMaxSizeSpin");
+ window->JournalMaxSizeCombo=yon_gtk_builder_get_widget(builder,"JournalMaxSizeCombo");
+ window->FileAmountCheck=yon_gtk_builder_get_widget(builder,"FileAmountCheck");
+ window->FileAmountSpin=yon_gtk_builder_get_widget(builder,"FileAmountSpin");
+ window->FileAmountCombo=yon_gtk_builder_get_widget(builder,"FileAmountCombo");
+ window->FileAmountEntry=yon_gtk_builder_get_widget(builder,"FileAmountEntry");
+ window->FileAmountButton=yon_gtk_builder_get_widget(builder,"FileAmountButton");
+ window->RotationAtUserCombo=yon_gtk_builder_get_widget(builder,"RotationAtUserCombo");
+ window->RotationAtGroupCombo=yon_gtk_builder_get_widget(builder,"RotationAtGroupCombo");
+ window->ErrorProcessingCombo=yon_gtk_builder_get_widget(builder,"ErrorProcessingCombo");
+ window->JournalEmptyCombo=yon_gtk_builder_get_widget(builder,"JournalEmptyCombo");
+ window->DoNotRotateYoungerCheck=yon_gtk_builder_get_widget(builder,"DoNotRotateYoungerCheck");
+ window->DoNotRotateYoungerSpin=yon_gtk_builder_get_widget(builder,"DoNotRotateYoungerSpin");
+ window->DeleteOlderCheck=yon_gtk_builder_get_widget(builder,"DeleteOlderCheck");
+ window->DeleteOlderSpin=yon_gtk_builder_get_widget(builder,"DeleteOlderSpin");
+ window->RotateSizeMaxAfterTimeCheck=yon_gtk_builder_get_widget(builder,"RotateSizeMaxAfterTimeCheck");
+ window->RotateSizeMaxAfterTimeSpin=yon_gtk_builder_get_widget(builder,"RotateSizeMaxAfterTimeSpin");
+ window->RotateSizeMaxAfterTimeCombo=yon_gtk_builder_get_widget(builder,"RotateSizeMaxAfterTimeCombo");
+ window->RotateSizeMaxBeforeTimeCheck=yon_gtk_builder_get_widget(builder,"RotateSizeMaxBeforeTimeCheck");
+ window->RotateSizeMaxBeforeTimeSpin=yon_gtk_builder_get_widget(builder,"RotateSizeMaxBeforeTimeSpin");
+ window->RotateSizeMaxBeforeTimeCombo=yon_gtk_builder_get_widget(builder,"RotateSizeMaxBeforeTimeCombo");
+ window->CreateLogCombo=yon_gtk_builder_get_widget(builder,"CreateLogCombo");
+ window->CreateLogUserCombo=yon_gtk_builder_get_widget(builder,"CreateLogUserCombo");
+ window->CreateGroupCombo=yon_gtk_builder_get_widget(builder,"CreateGroupCombo");
+ window->CreateLogEntry=yon_gtk_builder_get_widget(builder,"CreateLogEntry");
+ window->CreateLogButton=yon_gtk_builder_get_widget(builder,"CreateLogButton");
+ window->CutCheck=yon_gtk_builder_get_widget(builder,"CutCheck");
+ window->CompressionCombo=yon_gtk_builder_get_widget(builder,"CompressionCombo");
+ window->QueueCombo=yon_gtk_builder_get_widget(builder,"QueueCombo");
+ window->SaveOriginalCombo=yon_gtk_builder_get_widget(builder,"SaveOriginalCombo");
+ window->SaveOriginalEntry=yon_gtk_builder_get_widget(builder,"SaveOriginalEntry");
+ window->AddDateCombo=yon_gtk_builder_get_widget(builder,"AddDateCombo");
+ window->OldNumberCombo=yon_gtk_builder_get_widget(builder,"OldNumberCombo");
+ window->OldNumberEntry=yon_gtk_builder_get_widget(builder,"OldNumberEntry");
+ window->EmailCombo=yon_gtk_builder_get_widget(builder,"EmailCombo");
+ window->EmailEntry=yon_gtk_builder_get_widget(builder,"EmailEntry");
+ window->EmailContentsCombo=yon_gtk_builder_get_widget(builder,"EmailContentsCombo");
+ window->ManualInputEntry=yon_gtk_builder_get_widget(builder,"ManualInputEntry");
+ window->LogSizeLabel=yon_gtk_builder_get_widget(builder,"LogSizeLabel");
+ window->headerTopic=yon_gtk_builder_get_widget(builder,"headerTopic");
+ window->LogNameDescriptionLabel=yon_gtk_builder_get_widget(builder,"LogNameDescriptionLabel");
+ window->list=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
+ g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
+ g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
+
+ return window;
}
-void on_log_add(GtkWidget *self, main_window *widgets){
- add_log_window *window = yon_log_open(widgets);
- gtk_widget_hide(window->editingBox);
- dictionary *dict = NULL;
- yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
- yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
- g_signal_connect(G_OBJECT(window->LogFindButton),"clicked",G_CALLBACK(on_log_choose),window);
- g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_log_save),dict);
- gtk_dialog_run(GTK_DIALOG(window->MainWindow));
+void on_logrotate_add(GtkWidget *self, main_window *widgets){
+ logrotate_configure_window *window = yon_logrotate_window_new();
+ gtk_widget_show(window->MainWindow);
+ add_log_window *dialog = on_add_open();
+ gtk_widget_hide(dialog->StatisticsFrame);
+ gtk_widget_hide(dialog->JournaldButton);
+ gtk_label_set_text(GTK_LABEL(window->LogNamelabel),"");
+ gtk_label_set_text(GTK_LABEL(window->LogNameDescriptionLabel),"");
+ gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),"");
+ gtk_window_present(GTK_WINDOW(dialog->MainWindow));
}
-void on_edit_save(GtkWidget *self,dictionary *dict){
- main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
- add_log_window *window = yon_dictionary_get_data(dict->first->next,add_log_window*);
- long file_amount = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->FileAmountCheck)) ? gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->FileAmountSpin)) : -1;
- int size = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->FileSizeCheck)) ? gtk_combo_box_get_active(GTK_COMBO_BOX(window->FileSizeCombo)) : -1;
- long file_max_size = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->FileSizeCheck)) ? gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->FileSizeSpin)) : -1;
- for (int i=0;iMainTree)),&model, &iter)){
+ logrotate_configure_window *dialog = yon_logrotate_window_new();
+
+ gtk_widget_show(dialog->MainWindow);
}
- int rotation_period = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->RotationPeriodCheck)) ? gtk_combo_box_get_active(GTK_COMBO_BOX(window->RotationPeriodCombo)) : -1;
- int journal_size = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->JournalSizeCheck)) ? gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->JournalSizeSpin)) : -1;
- size = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->JournalSizeCheck)) ? gtk_combo_box_get_active(GTK_COMBO_BOX(window->JournalSizeCombo)) : -1;
- for (int i=0;iMainTree)),&model, &iter)){
+ gtk_list_store_remove(main_config.logrotate_list,&iter);
}
- int journal_gathering = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->JournalGatheringPeriodCheck)) ? gtk_combo_box_get_active(GTK_COMBO_BOX(window->JournalGatheringPeriodCombo)) : -1;
+}
+
+void on_logrotate_apps_configure(){
+
+}
+
+void on_logrotate_tab_open(GtkWidget *self, main_window *widgets){
+ logrotate_window *window = malloc(sizeof(logrotate_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_logrotate_table_path);
+ window->Window=yon_gtk_builder_get_widget(builder,"MainWindow");
+ window->AppsMainTree=yon_gtk_builder_get_widget(builder,"AppsMainTree");
+ window->MainTree=yon_gtk_builder_get_widget(builder,"MainTree");
+ window->AppsConfigureButton=yon_gtk_builder_get_widget(builder,"AppsConfigureButton");
+ window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
+ window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
+ window->ConfigureButton = yon_gtk_builder_get_widget(builder,"ConfigureButton");
+ window->AddButton = yon_gtk_builder_get_widget(builder,"AddButton");
+ window->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
+ gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL);
+
+ gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree),GTK_TREE_MODEL(main_config.logrotate_list));
+ gtk_tree_view_set_model(GTK_TREE_VIEW(window->AppsMainTree),GTK_TREE_MODEL(main_config.logrotate_apps_list));
+
+ g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
+ g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
+ g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_logrotate_add),window);
+ g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_logrotate_remove),window);
+ g_signal_connect(G_OBJECT(window->ConfigureButton),"clicked",G_CALLBACK(on_logrotate_edit),window);
+ g_signal_connect(G_OBJECT(window->AppsConfigureButton),"clicked",G_CALLBACK(on_logrotate_apps_configure),NULL);
+ gtk_widget_show(window->Window);
+}
+
+void on_journald_open(GtkWidget *self, main_window *widgets){
+ journald_window *window = malloc(sizeof(journald_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_journald_path);
+ window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
+ window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
+ window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
+ window->LogNameLabel=yon_gtk_builder_get_widget(builder,"LogNameLabel");
+ window->LogDescriptionLabel=yon_gtk_builder_get_widget(builder,"LogDescriptionLabel");
+ window->LogStorageCombo=yon_gtk_builder_get_widget(builder,"LogStorageCombo");
+ window->LogCompressionCombo=yon_gtk_builder_get_widget(builder,"LogCompressionCombo");
+ window->LogCompressionEntry=yon_gtk_builder_get_widget(builder,"LogCompressionEntry");
+ window->LogCompressionSizeCombo=yon_gtk_builder_get_widget(builder,"LogCompressionSizeCombo");
+ window->DivideJournalFilesCombo=yon_gtk_builder_get_widget(builder,"DivideJournalFilesCombo");
+ window->LogIntervalCheck=yon_gtk_builder_get_widget(builder,"LogIntervalCheck");
+ window->LogIntervalSpin=yon_gtk_builder_get_widget(builder,"LogIntervalSpin");
+ window->LogIntervalAmountCheck=yon_gtk_builder_get_widget(builder,"LogIntervalAmountCheck");
+ window->LogIntervalAmountSpin=yon_gtk_builder_get_widget(builder,"LogIntervalAmountSpin");
+ window->LogSizeMaxCheck=yon_gtk_builder_get_widget(builder,"LogSizeMaxCheck");
+ window->LogSizeMaxSpin=yon_gtk_builder_get_widget(builder,"LogSizeMaxSpin");
+ window->LogSizeMaxCombo=yon_gtk_builder_get_widget(builder,"LogSizeMaxCombo");
+ window->RotationSizeMaxCheck=yon_gtk_builder_get_widget(builder,"RotationSizeMaxCheck");
+ window->RotationSizeMaxSpin=yon_gtk_builder_get_widget(builder,"RotationSizeMaxSpin");
+ window->RotationSizeMaxCombo=yon_gtk_builder_get_widget(builder,"RotationSizeMaxCombo");
+ window->LogFreeSpaceCheck=yon_gtk_builder_get_widget(builder,"LogFreeSpaceCheck");
+ window->LogFreeSpaceSpin=yon_gtk_builder_get_widget(builder,"LogFreeSpaceSpin");
+ window->LogFreeSpaceCombo=yon_gtk_builder_get_widget(builder,"LogFreeSpaceCombo");
+ window->RedirectCombo=yon_gtk_builder_get_widget(builder,"RedirectCombo");
+ window->RedirectTTYEntry=yon_gtk_builder_get_widget(builder,"RedirectTTYEntry");
+ window->ForwardedTypeCombo=yon_gtk_builder_get_widget(builder,"ForwardedTypeCombo");
+ window->LogSizeLabel=yon_gtk_builder_get_widget(builder,"LogSizeLabel");
+ window->LowerSizeEntry=yon_gtk_builder_get_widget(builder,"LowerSizeEntry");
+ window->LowerSizeCombo=yon_gtk_builder_get_widget(builder,"LowerSizeCombo");
+ window->LowerSizeButton=yon_gtk_builder_get_widget(builder,"LowerSizeButton");
+ window->LowerTimeEntry=yon_gtk_builder_get_widget(builder,"LowerTimeEntry");
+ window->LowerTimeCombo=yon_gtk_builder_get_widget(builder,"LowerTimeCombo");
+ window->LowerTimeButton=yon_gtk_builder_get_widget(builder,"LowerTimeButton");
+ window->headerTopic=yon_gtk_builder_get_widget(builder,"headerTopic");
+
+ gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
+
+ g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
+ g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
+ gtk_widget_show(window->MainWindow);
+}
+
+void on_serivces_open(GtkWidget *self,main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
GtkTreeIter iter;
- if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
- gtk_list_store_set(widgets->list,&iter,3,file_amount,4,file_max_size,5,rotation_period,6,journal_size,7,journal_gathering,-1);
+ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model, &iter)){
+ char *service_name;
+ gtk_tree_model_get(model,&iter,1,&service_name,-1);
+ if (!strcmp(service_name,"journald")){
+ on_journald_open(NULL,widgets);
+ } else {
+ on_logrotate_tab_open(NULL,widgets);
+ }
}
- gtk_widget_destroy(window->MainWindow);
+
}
-void on_log_edit(GtkWidget *self, main_window *widgets){
- add_log_window *window = yon_log_open(widgets);
- GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->MainTree));
+void on_log_add(GtkWidget *self, main_window *widgets){
+ GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
+ GtkTreeIter iter;
+ add_log_window *window = on_add_open();
+ gtk_widget_show(window->MainWindow);
+ gtk_widget_hide(window->StatisticsFrame);
+ gtk_widget_hide(window->JournaldButton);
+ g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_close_subwindow),NULL);
+}
+
+void on_log_edit(GtkWidget *self,main_window *widgets){
+ GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
GtkTreeIter iter;
- char *name;
- long files;
- long maxsize;
- int rotation_period;
- long journal_max_size;
- int journal_gathering_period;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
- gtk_tree_model_get(model,&iter,0,&name,3,&files,4,&maxsize,5,&rotation_period,6,&journal_max_size,7,&journal_gathering_period,-1);
- if (strcmp(name,"journald")){
- gtk_widget_hide(window->JournalSettingsBox);
+ add_log_window *window = on_add_open();
+ gtk_widget_show(window->MainWindow);
+ gtk_widget_hide(window->StatisticsFrame);
+ char *name;
+ gtk_tree_model_get(model,&iter,0,&name,-1);
+ if (!strcmp(name,"journald")){
+ gtk_widget_hide(window->LogrotateButton);
+ gtk_widget_hide(window->MetalogButton);
+ gtk_widget_hide(window->SyslogButton);
+ g_signal_connect(G_OBJECT(window->JournaldButton),"clicked", G_CALLBACK(on_journald_open),widgets);
} else {
- gtk_widget_hide(window->LogSettingsBox);
- }
- gtk_label_set_text(GTK_LABEL(window->LogNameLabel),name);
- dictionary *dict = NULL;
- yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
- yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
-
- g_signal_connect(G_OBJECT(window->FileAmountCheck),"toggled", G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->FileAmountSpin);
- g_signal_connect(G_OBJECT(window->FileSizeCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->FileSizeSpin);
- g_signal_connect(G_OBJECT(window->FileSizeCheck),"toggled" ,G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->FileSizeCombo);
- g_signal_connect(G_OBJECT(window->RotationPeriodCheck), "toggled", G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->RotationPeriodCombo);
- g_signal_connect(G_OBJECT(window->JournalSizeCheck), "toggled", G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->JournalSizeSpin);
- g_signal_connect(G_OBJECT(window->JournalSizeCheck), "toggled", G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->JournalSizeCombo);
- g_signal_connect(G_OBJECT(window->JournalGatheringPeriodCheck), "toggled", G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->JournalGatheringPeriodCombo);
- g_signal_connect(G_OBJECT(window->SaveButton), "clicked", G_CALLBACK(on_edit_save),dict);
-
- if (files!=-1) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->FileAmountCheck),1);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->FileAmountSpin),files!=-1 ? files : 0);
- int size_mod;
- double size_final = (double)maxsize;
- for (size_mod=0;(double)size_final>1024;size_mod++){
- size_final=size_final/1024;
- }
- if (size_final!=-1) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->FileSizeCheck),1);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->FileSizeSpin),size_final!=-1 ? size_final : 0);
- gtk_combo_box_set_active(GTK_COMBO_BOX(window->FileSizeCombo),size_mod!=-1 ? size_final : 0);
- if (rotation_period!=-1) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->RotationPeriodCheck),1);
- gtk_combo_box_set_active(GTK_COMBO_BOX(window->RotationPeriodCombo),rotation_period!=-1 ? rotation_period : 0);
- size_mod;
- size_final = (double)journal_max_size;
- for (size_mod=0;(double)size_final>0.1;size_mod++){
- size_final=size_final/1024;
+ gtk_widget_hide(window->JournaldButton);
+ // g_signal_connect(G_OBJECT(window->JournaldButton),"clicked", G_CALLBACK(on_journald_open),widgets);
+ // g_signal_connect(G_OBJECT(window->JournaldButton),"clicked", G_CALLBACK(on_log),widgets);
+ // g_signal_connect(G_OBJECT(window->JournaldButton),"clicked", G_CALLBACK(on_journald_open),widgets);
}
- if (size_final!=-1) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->JournalSizeCheck),1);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->JournalSizeSpin),size_final!=-1 ? size_final : 0);
- gtk_combo_box_set_active(GTK_COMBO_BOX(window->JournalSizeCombo),size_mod!=-1 ? size_final : 0);
- if (journal_gathering_period!=-1) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->JournalGatheringPeriodCheck),1);
- gtk_combo_box_set_active(GTK_COMBO_BOX(window->JournalGatheringPeriodCombo),journal_gathering_period!=-1 ? journal_gathering_period : 0);
- gtk_widget_hide(window->LogAddingBox);
- gtk_widget_show(window->LogEditingBox);
- gtk_widget_show(window->editingBox);
- gtk_dialog_run(GTK_DIALOG(window->MainWindow));
- gtk_widget_destroy(window->MainWindow);
+ gtk_widget_set_sensitive(window->LogAddingBox,0);
+ g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_close_subwindow),NULL);
}
-
-
}
void on_log_remove(GtkWidget *self, main_window *widgets){
@@ -355,6 +449,20 @@ void on_log_remove(GtkWidget *self, main_window *widgets){
}
}
+void on_service_edit(GtkWidget *self,main_window *widgets){
+ GtkTreeModel *model = GTK_TREE_MODEL(widgets->ServicesList);
+ GtkTreeIter iter;
+ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ServicesTree)),&model,&iter)){
+ char *name;
+ gtk_tree_model_get(model,&iter,1,&name,-1);
+ if (!strcmp(name,"journald")){
+ on_journald_open(NULL,widgets);
+ } else {
+ on_logrotate_tab_open(NULL,widgets);
+ }
+ }
+}
+
// standard functions
void config_init(){
@@ -371,6 +479,8 @@ void config_init(){
main_config.lock_load_global=0;
main_config.lock_save_global=0;
main_config.lock_save_local=0;
+ main_config.logrotate_list = gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING);
+ main_config.logrotate_apps_list = gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING);
}
main_window *setup_window(){
@@ -409,7 +519,11 @@ main_window *setup_window(){
widgets->ConfigureButton = yon_gtk_builder_get_widget(builder,"MainConfigureButton");
widgets->AddButton = yon_gtk_builder_get_widget(builder,"MainAddButton");
widgets->RemoveButton = yon_gtk_builder_get_widget(builder,"MainRemoveButton");
+ widgets->Notebook = yon_gtk_builder_get_widget(builder,"MainNotebook");
+ widgets->ServicesEditButton = yon_gtk_builder_get_widget(builder,"ServicesEditButton");
+ widgets->ServicesTree = yon_gtk_builder_get_widget(builder,"ServicesTree");
widgets->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
+ widgets->ServicesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"ServicesList"));
widgets->MainTree = yon_gtk_builder_get_widget(builder,"MainTree");
@@ -431,6 +545,10 @@ main_window *setup_window(){
gtk_widget_set_sensitive(widgets->SaveMenuItem,0);
}
int size;
+ int service_size;
+ int dirs_size;
+ char *cname=NULL;
+ char *cparams="";
GtkTreeIter iter;
config_str journals = yon_file_open(journals_list_path,&size);
for (int i=0;ilist,&iter);
gtk_list_store_set(widgets->list,&iter,0,log[0],1,log[1],2,log[2],3,-1,4,-1,5,-1,6,-1,7,-1,-1);
}
+ config_str services = yon_file_open(services_list_path,&service_size);
+ for (int i=0;iServicesList,&iter);
+ gtk_list_store_set(widgets->ServicesList,&iter,0,0,1,log[0],2,log[1],-1);
+ // yon_char_parsed_free(log,log_size);
+ }
+ // yon_char_parsed_free(services,service_size);
+ config_str dirs = yon_config_load(logrotate_config_command,&dirs_size);
+ for (int i=0;iHeadInfoLabel,"head-text","label",YON_TYPE_STRING);
@@ -452,6 +612,7 @@ main_window *setup_window(){
g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_log_add),widgets);
g_signal_connect(G_OBJECT(widgets->ConfigureButton),"clicked",G_CALLBACK(on_log_edit),widgets);
g_signal_connect(G_OBJECT(widgets->RemoveButton),"clicked",G_CALLBACK(on_log_remove),widgets);
+ g_signal_connect(G_OBJECT(widgets->ServicesEditButton),"clicked",G_CALLBACK(on_service_edit),widgets);
gtk_widget_show(widgets->Window);
diff --git a/source/ubl-settings-logging.h b/source/ubl-settings-logging.h
index ba88968..68bfa6a 100644
--- a/source/ubl-settings-logging.h
+++ b/source/ubl-settings-logging.h
@@ -21,10 +21,16 @@
#define glade_path "/com/ublinux/ui/ubl-settings-logging.glade"
#define glade_add_path "/com/ublinux/ui/ubl-settings-logging-add.glade"
#define glade_inspector_path "/com/ublinux/ui/ubl-settings-logging-inspector.glade"
+#define glade_journald_path "/com/ublinux/ui/ubl-settings-logging-journald.glade"
+#define glade_logrotate_path "/com/ublinux/ui/ubl-settings-logging-logrotate.glade"
+#define glade_logrotate_table_path "/com/ublinux/ui/ubl-settings-logging-logrotate-table.glade"
#define banner_path "/com/ublinux/images/ubl-settings-logging-banner.png"
#define CssPath "/com/ublinux/css/ubl-settings-logging.css"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define journals_list_path "/usr/share/ubl-settings-logging/csv/journals_list.csv"
+#define services_list_path "/usr/share/ubl-settings-logging/csv/logging_services.csv"
+#define logrotate_config_command "ls /etc/logrotate.d/ |sed -e 's/ */\\n/g'"
+#define logrotate_config_path "/etc/logrotate.d/"
#define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-logging"
@@ -55,6 +61,9 @@ typedef struct {
int lock_save_local;
int lock_save_global;
int lock_load_global;
+
+ GtkListStore *logrotate_list;
+ GtkListStore *logrotate_apps_list;
} config;
typedef struct {
@@ -92,7 +101,12 @@ typedef struct {
GtkWidget *ConfigureButton;
GtkWidget *AddButton;
GtkWidget *RemoveButton;
+
+ GtkWidget *Notebook;
+ GtkWidget *ServicesTree;
+ GtkWidget *ServicesEditButton;
GtkListStore *list;
+ GtkListStore *ServicesList;
// Custom
} main_window;
@@ -141,6 +155,12 @@ typedef struct {
GtkWidget *LogEditingBox;
GtkWidget *LogAddingBox;
GtkWidget *LogNameLabel;
+ GtkWidget *LogrotateButton;
+ GtkWidget *MetalogButton;
+ GtkWidget *SyslogButton;
+ GtkWidget *JournaldButton;
+ GtkWidget *LogSizeLabel;
+ GtkWidget *StatisticsFrame;
} add_log_window;
typedef struct {
@@ -158,5 +178,117 @@ int last_mode;
} inspector_window;
+typedef struct {
+ GtkWidget *Window;
+
+ GtkWidget *MainTree;
+ GtkWidget *ConfiguraButton;
+ GtkWidget *CancelButton;
+ GtkWidget *SaveButton;
+ GtkListStore *list;
+} logrotate_tab_window;
+
+typedef struct {
+ GtkWidget *Window;
+ GtkWidget *AppsMainTree;
+ GtkWidget *AppsConfigureButton;
+ GtkWidget *MainTree;
+ GtkWidget *AddButton;
+ GtkWidget *RemoveButton;
+ GtkWidget *ConfigureButton;
+ GtkWidget *CancelButton;
+ GtkWidget *SaveButton;
+} logrotate_window;
+
+typedef struct {
+ GtkWidget *MainWindow;
+ GtkWidget *CancelButton;
+ GtkWidget *SaveButton;
+ GtkWidget *LogNameLabel;
+ GtkWidget *LogDescriptionLabel;
+ GtkWidget *LogStorageCombo;
+ GtkWidget *LogCompressionCombo;
+ GtkWidget *LogCompressionEntry;
+ GtkWidget *LogCompressionSizeCombo;
+ GtkWidget *DivideJournalFilesCombo;
+ GtkWidget *LogIntervalCheck;
+ GtkWidget *LogIntervalSpin;
+ GtkWidget *LogIntervalAmountCheck;
+ GtkWidget *LogIntervalAmountSpin;
+ GtkWidget *LogSizeMaxCheck;
+ GtkWidget *LogSizeMaxSpin;
+ GtkWidget *LogSizeMaxCombo;
+ GtkWidget *RotationSizeMaxCheck;
+ GtkWidget *RotationSizeMaxSpin;
+ GtkWidget *RotationSizeMaxCombo;
+ GtkWidget *LogFreeSpaceCheck;
+ GtkWidget *LogFreeSpaceSpin;
+ GtkWidget *LogFreeSpaceCombo;
+ GtkWidget *RedirectCombo;
+ GtkWidget *RedirectTTYEntry;
+ GtkWidget *ForwardedTypeCombo;
+ GtkWidget *LogSizeLabel;
+ GtkWidget *LowerSizeEntry;
+ GtkWidget *LowerSizeCombo;
+ GtkWidget *LowerSizeButton;
+ GtkWidget *LowerTimeEntry;
+ GtkWidget *LowerTimeCombo;
+ GtkWidget *LowerTimeButton;
+ GtkWidget *headerTopic;
+} journald_window;
+
+typedef struct {
+ GtkWidget *MainWindow;
+ GtkWidget *CancelButton;
+ GtkWidget *SaveButton;
+ GtkWidget *LogNamelabel;
+ GtkWidget *LogNameButton;
+ GtkWidget *LogNameDescriptionLabel;
+ GtkWidget *RotationPeriodCheck;
+ GtkWidget *RotationPeriodMainCombo;
+ GtkWidget *RotationPeriodAdditionalCombo;
+ GtkWidget *JournalMaxSizeCheck;
+ GtkWidget *JournalMaxSizeSpin;
+ GtkWidget *JournalMaxSizeCombo;
+ GtkWidget *FileAmountCheck;
+ GtkWidget *FileAmountSpin;
+ GtkWidget *FileAmountCombo;
+ GtkWidget *FileAmountEntry;
+ GtkWidget *FileAmountButton;
+ GtkWidget *RotationAtUserCombo;
+ GtkWidget *RotationAtGroupCombo;
+ GtkWidget *ErrorProcessingCombo;
+ GtkWidget *JournalEmptyCombo;
+ GtkWidget *DoNotRotateYoungerCheck;
+ GtkWidget *DoNotRotateYoungerSpin;
+ GtkWidget *DeleteOlderCheck;
+ GtkWidget *DeleteOlderSpin;
+ GtkWidget *RotateSizeMaxAfterTimeCheck;
+ GtkWidget *RotateSizeMaxAfterTimeSpin;
+ GtkWidget *RotateSizeMaxAfterTimeCombo;
+ GtkWidget *RotateSizeMaxBeforeTimeCheck;
+ GtkWidget *RotateSizeMaxBeforeTimeSpin;
+ GtkWidget *RotateSizeMaxBeforeTimeCombo;
+ GtkWidget *CreateLogCombo;
+ GtkWidget *CreateLogUserCombo;
+ GtkWidget *CreateGroupCombo;
+ GtkWidget *CreateLogEntry;
+ GtkWidget *CreateLogButton;
+ GtkWidget *CutCheck;
+ GtkWidget *CompressionCombo;
+ GtkWidget *QueueCombo;
+ GtkWidget *SaveOriginalCombo;
+ GtkWidget *SaveOriginalEntry;
+ GtkWidget *AddDateCombo;
+ GtkWidget *OldNumberCombo;
+ GtkWidget *OldNumberEntry;
+ GtkWidget *EmailCombo;
+ GtkWidget *EmailEntry;
+ GtkWidget *EmailContentsCombo;
+ GtkWidget *ManualInputEntry;
+ GtkWidget *LogSizeLabel;
+ GtkWidget *headerTopic;
+ GtkListStore *list;
+} logrotate_configure_window;
main_window *setup_window();
\ No newline at end of file
diff --git a/source/ubl-utils.c b/source/ubl-utils.c
index 4dc8b33..8cc0436 100644
--- a/source/ubl-utils.c
+++ b/source/ubl-utils.c
@@ -751,6 +751,13 @@ config_str yon_char_parsed_new (int *size, ...){
return new_parsed;
}
+void yon_char_parsed_free(config_str source, int size){
+ for (int i=0;id_name);
+ else dir = yon_char_parsed_new(size,de->d_name,NULL);
+ }
+ closedir(directory);
+ }
+ return dir;
+}
+
//config functions
typedef struct yon_config_parameter
diff --git a/source/ubl-utils.h b/source/ubl-utils.h
index 6ab711f..db8ade7 100644
--- a/source/ubl-utils.h
+++ b/source/ubl-utils.h
@@ -121,6 +121,8 @@ void *yon_dictionary_free_all(dictionary *dictionary,void (data_manipulation)(vo
// char functions
+#define yon_char_divide_search_self(str,find,delete_divider) {char *temp = str; str = yon_char_divide_search(str,find,delete_divider); free(temp);}
+
int yon_char_find_last(char *source, char find);
char *yon_char_append(char *source, char *append);
@@ -151,6 +153,8 @@ int yon_char_parsed_includes_char_parsed (config_str source, config_str to_check
config_str yon_char_parsed_new (int *size, ...);
+void yon_char_parsed_free(config_str source, int size);
+
void yon_char_parsed_copy(config_str *source, config_str *to_copy);
config_str yon_char_parsed_append(config_str parsed, int *size, char *string);
@@ -173,6 +177,8 @@ apps *yon_apps_get_by_name(apps *applist, char *name, int size);
config_str yon_file_open(char *file_path, int *size);
+config_str yon_dir_get_contents(char *dir_path, int *size);
+
//config functions
#define ubconfig_save_command "ubconfig"
diff --git a/ubl-settings-logging-add.glade b/ubl-settings-logging-add.glade
index 0af9e83..dcba07a 100644
--- a/ubl-settings-logging-add.glade
+++ b/ubl-settings-logging-add.glade
@@ -29,14 +29,40 @@
emblem-ok-symbolic
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Path (-s):
+ 0
+
+
+ False
+ True
+ 0
+
+
True
@@ -139,6 +191,22 @@
True
True
+ 1
+
+
+
+
+ True
+ True
+ True
+ image4
+
+
+
+ False
+ True
2
@@ -158,11 +226,27 @@
3
+
+
+ True
+ True
+ True
+ image9
+
+
+
+ False
+ True
+ 4
+
+
False
True
- 0
+ 1
@@ -197,7 +281,7 @@
False
True
- 1
+ 2
@@ -207,470 +291,180 @@
0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ 5
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
-
+
+ True
False
- 5
+ Control:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 19
-
+
+ Logrotate
True
- False
- Log/Journal:
+ True
+ True
+ image5
- False
+ True
True
0
-
+
+ Metalog
True
- False
+ False
+ True
+ True
+ image7
- False
+ True
True
1
+
+
+ Syslog-ng
+ True
+ False
+ True
+ True
+ image6
+
+
+ True
+ True
+ 2
+
+
+
+
+ Journald
+ True
+ True
+ True
+ image8
+
+
+ False
+ True
+ 3
+
+
- False
+ True
True
- 1
+ 4
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 0
+ in
-
+
True
False
- vertical
- 5
+ 5
+ 12
+ 5
+ 5
-
+
True
False
- 0.019999999552965164
- in
+ 5
-
- True
- False
- 5
- 5
- 5
-
-
- True
- False
- vertical
- 5
-
-
- True
- False
- vertical
- 5
-
-
- True
- False
- 5
-
-
- File amount:
- True
- True
- False
- True
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- True
- adjustment2
-
-
- True
- True
- 1
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- 5
-
-
- File maximum size:
- True
- True
- False
- True
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- True
- adjustment1
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- False
- 0
-
- - Kb
- - Mb
- - Gb
- - Tb
-
-
-
- True
- True
- 2
-
-
-
-
- False
- True
- 1
-
-
-
-
- True
- False
- 5
-
-
- Rotation period:
- True
- True
- False
- True
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- False
-
- - day
- - week
- - month
-
-
-
- True
- True
- 1
-
-
-
-
- False
- True
- 2
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- vertical
- 5
-
-
- True
- False
- 5
-
-
- Journal maximum size:
- True
- True
- False
- True
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- True
- 0
- adjustment3
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- False
- 0
-
- - Kb
- - Mb
- - Gb
- - Tb
-
-
-
- True
- True
- 2
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- 5
-
-
- Information gathering period:
- True
- True
- False
- True
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- False
-
- - day
- - week
- - month
-
-
-
- True
- True
- 1
-
-
-
-
- False
- True
- 1
-
-
-
-
- False
- True
- 1
-
-
-
-
-
-
-
True
False
- Rotation configuration
+ Log size:
+
+ False
+ True
+ 0
+
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- 0.019999999552965164
- in
-
- True
- False
- 5
- 5
- 5
-
-
- True
- False
- vertical
- 5
-
-
- True
- False
- 5
-
-
- True
- False
- Log size:
-
-
- False
- True
- 0
-
-
-
-
- True
- False
-
-
- False
- True
- 1
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- 5
-
-
- True
- False
- Disk size (overall/free):
-
-
- False
- True
- 0
-
-
-
-
- True
- False
-
-
- False
- True
- 1
-
-
-
-
- False
- True
- 1
-
-
-
-
-
-
-
-
+
True
False
- Statistics
+ 0.0 Mb
+
+ True
+ True
+ 1
+
-
- False
- True
- 1
-
-
- False
- True
- 2
-
+
+
+
+ True
+ False
+ Statistics
+
False
True
- 2
+ end
+ 4
@@ -719,6 +513,13 @@
+
+
+
+ True
+ False
+ com.ublinux.ubl-settings-logging.decrease-symbolic
+
diff --git a/ubl-settings-logging-inspector.glade b/ubl-settings-logging-inspector.glade
index d6d3a4a..33f25fa 100644
--- a/ubl-settings-logging-inspector.glade
+++ b/ubl-settings-logging-inspector.glade
@@ -38,6 +38,21 @@
False
emblem-synchronizing-symbolic
+
+ True
+ False
+ emblem-documents-symbolic
+
+
+ True
+ False
+ emblem-synchronizing-symbolic
+
+
+ True
+ False
+ emblem-shared-symbolic
+
800
@@ -140,6 +155,57 @@
3
+
+
+ True
+ True
+ True
+ Show only priority error messages, critical messages and warnings
+ image7
+
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ True
+ True
+ Show only priority error messages, critical messages and warnings
+ image6
+
+
+
+ False
+ True
+ 5
+
+
+
+
+ True
+ True
+ True
+ Show only priority error messages, critical messages and warnings
+ image8
+
+
+
+ False
+ True
+ 6
+
+
False
diff --git a/ubl-settings-logging-journald.glade b/ubl-settings-logging-journald.glade
new file mode 100644
index 0000000..28c9956
--- /dev/null
+++ b/ubl-settings-logging-journald.glade
@@ -0,0 +1,978 @@
+
+
+
+
+
+
+
+ 1024
+ 1
+ 10
+
+
+ 1024
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ True
+ False
+ process-stop-symbolic
+
+
+ True
+ False
+ emblem-ok-symbolic
+
+
+ True
+ False
+ emblem-ok-symbolic
+
+
+ True
+ False
+ emblem-ok-symbolic
+
+
+ 450
+ 450
+ False
+ True
+ com.ublinux.ubl-settings-logging
+ dialog
+
+
+ False
+ 5
+ 5
+ 5
+ 5
+ vertical
+ 5
+
+
+ False
+ end
+
+
+ Cancel
+ True
+ True
+ True
+ image1
+
+
+ True
+ True
+ 0
+
+
+
+
+ Save
+ True
+ True
+ True
+ image2
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ False
+ 2
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Log/Journal:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ logname
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Description:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ logdescription
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Journal storage place:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Use compression:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 0
+
+ - Kb
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Divide journal files:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 5
+
+
+ Log recording journal interval:
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment4
+
+
+ False
+ True
+ 1
+
+
+
+
+ Records amount:
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ adjustment5
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ False
+ 5
+
+
+ Maximum size of all logs:
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment6
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 0
+
+ - Kb
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ False
+ 5
+
+
+ Maximum size of rotation journal:
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment7
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+ - Kb
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 5
+
+
+
+
+ True
+ False
+ 5
+
+
+ Leave free space at storage:
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment8
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+ - Kb
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 6
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Redirect to console:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ TTY:
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 7
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Type of forwarded messages:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 8
+
+
+
+
+
+
+
+
+ True
+ False
+ Journal configuration
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Total log size:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0.0 Mb
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Lower size to:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+ - Kb
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ Apply
+ True
+ True
+ True
+ image4
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Lower size to:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+ - Minutes
+ - Hours
+ - Days
+ - Weeks
+ - Months
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ Apply
+ True
+ True
+ True
+ image3
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+
+
+
+
+ True
+ False
+ Statistics
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+
+
+
diff --git a/ubl-settings-logging-logrotate-table.glade b/ubl-settings-logging-logrotate-table.glade
new file mode 100644
index 0000000..5eeb2c1
--- /dev/null
+++ b/ubl-settings-logging-logrotate-table.glade
@@ -0,0 +1,386 @@
+
+
+
+
+
+
+
+ 1024
+ 1
+ 10
+
+
+ 1024
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ True
+ False
+ process-stop-symbolic
+
+
+ True
+ False
+ emblem-ok-symbolic
+
+
+ True
+ False
+ document-edit-symbolic
+
+
+ True
+ False
+ com.ublinux.ubl-settings-logging.decrease-symbolic
+
+
+ True
+ False
+ com.ublinux.ubl-settings-logging.increase-symbolic
+
+
+ True
+ False
+ com.ublinux.ubl-settings-logging.back-symbolic
+
+
+ 450
+ 450
+ False
+ True
+ com.ublinux.ubl-settings-logging
+ dialog
+
+
+ False
+ 5
+ 5
+ 5
+ 5
+ vertical
+ 5
+
+
+ False
+ end
+
+
+ Cancel
+ True
+ True
+ True
+ image1
+
+
+ True
+ True
+ 0
+
+
+
+
+ Save
+ True
+ True
+ True
+ image2
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ False
+ 2
+
+
+
+
+ True
+ True
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ True
+ True
+ image5
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ True
+ image4
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ True
+ image3
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ True
+
+
+
+
+
+ Log/Journal
+
+
+
+
+
+
+
+ Path
+
+
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ True
+ False
+ System configuration
+
+
+ False
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ True
+ True
+ image8
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ True
+
+
+
+
+
+ Log/Journal
+
+
+
+ 0
+
+
+
+
+
+
+ Path
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 1
+
+
+
+
+ True
+ False
+ Applications configuration
+
+
+ 1
+ False
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+
+
+
+
+
diff --git a/ubl-settings-logging-logrotate.glade b/ubl-settings-logging-logrotate.glade
new file mode 100644
index 0000000..ce37634
--- /dev/null
+++ b/ubl-settings-logging-logrotate.glade
@@ -0,0 +1,1700 @@
+
+
+
+
+
+
+
+ 1024
+ 1
+ 10
+
+
+ 1024
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
+
+ True
+ False
+ process-stop-symbolic
+
+
+ True
+ False
+ emblem-ok-symbolic
+
+
+ True
+ False
+ document-edit-symbolic
+
+
+ True
+ False
+ com.ublinux.ubl-settings-logging.zoom-symbolic
+
+
+ True
+ False
+ com.ublinux.ubl-settings-logging.profile-symbolic
+
+
+ 800
+ 600
+ False
+ True
+ com.ublinux.ubl-settings-logging
+ dialog
+
+
+ False
+ 5
+ 5
+ 5
+ 5
+ vertical
+ 5
+
+
+ False
+ end
+
+
+ Cancel
+ True
+ True
+ True
+ image1
+
+
+ True
+ True
+ 0
+
+
+
+
+ Save
+ True
+ True
+ True
+ image2
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ False
+ 2
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Log/Journal:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Logname
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ True
+ image3
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Description:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ logdescription
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ Rotation period:
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+ - Week
+ - Month
+ - Year
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ Maximum size of file:
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment4
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+ - Kb
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+
+
+ True
+ False
+ Checking frequency configuration
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ File amount:
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment6
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ Store at:
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+
+ - Default
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ True
+ True
+ image4
+
+
+ False
+ True
+ 5
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Rotation as user:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ Rotation as group:
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+
+
+ True
+ False
+ Rotation configuration
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Error processing:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+ - Output errors if log file does not exist
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Rotation of jurnal even when it is empty:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ Do not rotate journal younger than
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment7
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ days
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 5
+
+
+ Delete rotated journals older than
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment5
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ days
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ False
+ 5
+
+
+ Rotate journals if size more than
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment8
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+ - Kb
+ - Mb
+ - Gb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ but not earlier than the specified time interval
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ False
+ 5
+
+
+ Rotate journals if size more than
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ adjustment9
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+ - Kb
+ - Mb
+ - Gb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ before specified time interval
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 5
+
+
+
+
+
+
+
+
+ True
+ False
+ File choosing configuration
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Create log
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ as user:
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+
+ - Default
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ False
+ as group:
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ False
+
+ - Default
+
+
+
+ False
+ True
+ 5
+
+
+
+
+ True
+ False
+ rules:
+
+
+ False
+ True
+ 6
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 7
+
+
+
+
+ True
+ True
+ True
+ image5
+
+
+ False
+ True
+ 8
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ Cut source journal fileafter copy creating instead of moving old journal file and creating new one
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+
+
+ True
+ False
+ Files and directories configuration
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Use compression:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - On
+ - Off
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ Delay compressin by one journal in queue:
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+
+
+
+
+ True
+ False
+ Compression configuration
+
+
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Save original log file after rotation if it has specified extension:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Add date of rotation before log header
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Number from which numbering of old logs will begin
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+
+
+
+
+ True
+ False
+ Filename configuration
+
+
+
+
+ False
+ True
+ 5
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Email after rotation:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ adress:
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ False
+ contents:
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+
+
+
+ False
+ True
+ 5
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+
+
+
+
+ True
+ False
+ Message configuration
+
+
+
+
+ False
+ True
+ 6
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Manual input:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 7
+
+
+
+
+
+
+
+
+ True
+ False
+ Rotation configuration
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 0
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Log size:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ loglize
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+
+
+ True
+ False
+ Statistics
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+
+
+
+
diff --git a/ubl-settings-logging.glade b/ubl-settings-logging.glade
index 5b11dd0..2247491 100644
--- a/ubl-settings-logging.glade
+++ b/ubl-settings-logging.glade
@@ -191,6 +191,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
True
False
@@ -211,6 +227,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
False
user-trash-symbolic
+
+ True
+ False
+ com.ublinux.ubl-settings-logging.stop-symbolic
+
+
+ True
+ False
+ com.ublinux.ubl-settings-logging.play-symbolic
+
+
+ True
+ False
+ document-edit-symbolic
+
True
False
@@ -627,25 +658,88 @@ translated and supported by community.
True
vertical
-
+
True
- False
- 5
+ True
True
False
- vertical
+ 5
+ 5
+ 5
+ 5
5
-
+
True
- True
- True
- image1
-
+ False
+ vertical
+ 5
+
+
+ True
+ True
+ True
+ image1
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ True
+ image2
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ True
+ image3
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ True
+ image4
+
+
+
+ False
+ True
+ 3
+
+
False
@@ -654,139 +748,237 @@ translated and supported by community.
-
+
True
True
- True
- image2
-
+ in
+
+
+ True
+ True
+ liststore1
+ 2
+
+
+
+
+
+ True
+ fixed
+ 30
+ Log/Journal
+
+
+ end
+ 100
+
+
+ 0
+
+
+
+
+
+
+ True
+ fixed
+ 30
+ Path
+
+
+ end
+ 100
+
+
+ 1
+
+
+
+
+
+
+ True
+ fixed
+ 30
+ Description
+
+
+ end
+ 100
+
+
+ 2
+
+
+
+
+
+
- False
+ True
True
1
+
+
+
+
+ True
+ False
+ Journals
+
+
+ False
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
-
- True
- True
- True
- image3
-
-
-
- False
- True
- 2
-
-
-
-
+
True
- True
- True
- image4
-
+ False
+ vertical
+ 5
+
+
+ True
+ True
+ True
+ image5
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ True
+ image6
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ True
+ image7
+
+
+
+ False
+ True
+ 2
+
+
False
True
- 3
+ 0
-
-
- False
- True
- 0
-
-
-
-
- True
- True
- in
-
+
True
True
- liststore1
- 2
-
-
-
+ in
-
- True
- fixed
- 30
- Log/Journal
+
+ True
+ True
+ ServicesList
+
+
+
-
- end
- 100
+
+ Status
+
+
+
+ 0
+
+
-
- 0
-
-
-
-
-
- True
- fixed
- 30
- Path
-
- end
- 100
+
+ Service
+
+
+
+ 1
+
+
-
- 1
-
-
-
-
-
- True
- fixed
- 30
- Description
-
- end
- 100
+
+ Description
+
+
+
+ 2
+
+
-
- 2
-
+
+ True
+ True
+ 1
+
- True
- True
1
+
+
+ True
+ False
+ Services
+
+
+ 1
+ False
+
+
True
True
- 0
+ 1