Modify logs activity of an FTP server written in goLang
€8-30 EUR
Closed
Posted about 6 years ago
€8-30 EUR
Paid on delivery
I would like to modify the logs activity of an FTP server written in goLang
1. Download the server with the command: go get [login to view URL]
2. cd %GOPATH%\\src\\[login to view URL]\\fclairamb\\ftpserver
3. go build
4. ftpserver
The server must be running correctly. By default the logs are saved in the console, they must be saved in files in the following way.
1. Add in the [login to view URL] file the 4 following directives: enable_logs, logs_dir, max_file_logs, logs_request
2. Add for each user the following 3 directives: separately_logs, max_file_logs, logs_request
SEE FILE [login to view URL] TO UNDERSTAND DIRECTIVES TO ADD
IMPORTANT: the directives (enable_logs, logs_dir etc...) must be detected in real time! That is to say, if we change the value of a directive, we must take it into account right away.
Example: separately_logs = true means that the server backs up the logs for that user, but if it is changed to false, the server must immediately stop backing up the logs for that user (without restarting the server).
NB: you can add to the server a "configuration reload" via a "golang watcher system" to detect changes in the [login to view URL] file in real time. As soon as this file is modified, we reload the configuration. Do what you want most is that changes to these guidelines should be taken into account immediately by the log manager.
NB: what you add must be written by yourself. No copying / pasting of the internet or code portion modification.
NB: for the max_file_logs and logs_request directives you can write an application separately. Example: [login to view URL] (it's a simple proposition to not slow down the server - it's up to you)
OF COURSE, YOUR CHANGES MUST BE COMPATIBLE WITH ALL OPERATING SYSTEMS (WINDOWS, LINUX, FREEBSD, MAC ETC ...). ALL SYSTEMS SUPPORTED BY GOLANG.
# --------------------------------------------------------
# SERVER LOGIN
# --------------------------------------------------------
# Save the server logs ?
# The logs will be saved in "logs_dir" defined below. Format: [login to view URL] => [login to view URL]
enable_logs = true
# Directory logs. If the directory does not exist, we try to create it, if we can not create it, no logs registration
logs_dir = "C:\\ftpServer\\logs\\"
# Leaver only this latest x logs files (see "logs_request" defined below)
max_file_logs = 30
# The action to be applied on the logs files IF $max_file_logs > 0
# - remove: remove, we leave only the last $max_file_logs logs files and we delete the rest
# - compres: we keep the last 30 logs files and we compres the rest before deleting them (compres zip or rar as you want).
# - empty or any other value we do nothing
# Nb: if max_file_logs < 1 or not defined, we do nothing
# Eg:
# logs_request = "remove"
# logs_request = "compres"
logs_request =
# --------------------------------------------------------
# USER LOGIN
# --------------------------------------------------------
# Save the logs for this user separately
# The logs will be saved in %{logs_dir}/%{Login}/[login to view URL] (eg: C:\\ftpServer\\logs\\test\\[login to view URL])
# Where %{logs_dir} is the logs directory defined above and %{Login} the user logsin
# If the directory does not exist, we try to create them, if we can not create them no logs registration
# NB: if enable_logs defined above is "false", no user separately logs registration
separately_logs = true
# Leaver only this latest 30 logs files (see "logs_request" defined below)
max_file_logs = 30
# The action to be applied on the logs files for the user IF $max_file_logs > 0
# - remove: remove, we leave only the last $max_file_logs logs files and we delete the rest
# - compres: we keep the last 30 logs files and we compres the rest before deleting them (compres zip or rar as you want).
# - empty or any other value we do nothing
# Nb: if max_file_logs < 1 or not defined, we do nothing
# Eg:
# logs_request = "remove"
# logs_request = "compres"
logs_request = "compres"
I'm new on freelance and willing to do ur project cheat to get review score. I can deliver this task within a day, do you have prefer golang default log module or could I use some better alternatives?(ex. logrus)