Skip to content

GSoC2015 Proposal: syslog ng as a command line tool (ViditTiwari)

Vidit Tiwari edited this page Mar 26, 2015 · 1 revision

Introduction

The syslog-ng is running as a daemon that takes incoming log messages from defined 'sources' and forwards them to the appropriate destinations, based on powerful filter directives. In a typical set-up, syslog-ng will read messages from three sources:

  1. the default /dev/log device,where most logs are sent
  2. syslog-ng "internal" log messages
  3. /proc/kmsg kernel messages

But quite a number of times there have been situations where a command line tool would have come in handy. Syslog-ng user can actually simulate the scenario by injecting logs through standard input and could see the result as standard output. Such a tool will help every user at some point of time.

Project Goals

A standalone offline command line tool that performs the following tasks:

  • reads input from stdin (ie. stdin source)
  • writes output to stdout (ie. stdout destination)
  • can read the syslog-ng configuration file from command line
  • user friendly

Benefits

For me

I always wanted to contribute to an Open Source project, and it would be my first time contributing for an Open Source Organization. I am an ardent follower of Open Source Community. It would be a huge lift up for me, and it will certainly improve my C language skills. I will grow as a developer and get to know more about Open Source Community, that will certainly help me in future while working with other organizations.

For syslog-ng

The syslog-ng application is a flexible and highly scalable system logging application. It's truly convenient if the user can simulate by injecting logs through standard input and could see the result as standard output in local machine. Such a standalone feature will help everyone in the community.

Roadmap

As per the dates given, I expect the project to take until the mid of August with me working about 40-50 hours a week when the coding begins. Here's how I picture the overall roadmap (subject to change by mentor intervention):

From now till late May (Before the actual coding time):

  • Learn more about syslog-ng, reading and syslog-ng and documentation and configuration files.
  • Understanding how daemon system works.
  • Interaction with mentor about the exact requirements. I will remain active on IRC and Mailing Lists to discuss the issues and strategy on how to actually put this idea to reality.

25th May – 31st June:

  • Work to refine the idea and implementation approach.
  • Discuss difficulties with community members and my mentor.
  • Start coding by the end of the week.

1st June – Mid of June:

  • Begin coding the basic standalone application with the help of my mentor and community members.
  • Discuss every approach with Mentor and would take feedback on it.
  • Regularly update the project on GitHub for review from community.
  • Testing for different rules and filters and debugging.

Mid of June – 25st June:

  • Completeing basic standalone application with main features working.
  • Documenting the code for the mid-term evaluation.
  • Testing for different rules and filters and debugging.

Regularly I will be in contact with the mentor through any suitable communication media. Before submitting for the mid-term evaluation documentation and bug fixing will be completed.

3rd July (Mid-term Evaluation)

4th July – Mid of July

  • Start working on improving the application as per the discussion with the mentor.
  • Start optimizing the code for better performance.
  • Testing and debugging.

16th July – 31st July

  • Will make all features working by the end of this timeline. Everything will be working except the few bugs.
  • Testing and debugging

1st August – 10th August

  • Fix bugs that were reported from various users from community.
  • Finishing theDocumentation

11th August – 17th August (Pencil Down Date)
This is suggested 'pencils down' date. If needed, will take a week to scrub code, write few test cases and test them, improve current documentation, and also implement any improvement that seems to be necessary or useful.

Management of Coding Project

Communication plan with Mentors

  • Will be in constant touch with the mentor via whatever media suitable to both of us.
  • Will give weekly reports on the progress of the work, what need to be done, problems, etc.

Contingency plan for things not going to schedule

Even after the summer I will be in constant touch with the community as I am very much interested in developing the open source software. So in worst case, if I am not able to finish my work in time, I will implement them after the summer. But, according to the timeline, a standalone command line tool will be ready before the final evaluation.

About me

General Info:
Name: Vidit Tiwari
Email: vidittiwari95@gmail.com, dev.vidit@gmail.com
IRC Nickname: vt/vidit on irc.freenode.net
Mobile No.: +91 7838627217
Time Zone: India (GMT +5:30)

I am a B. Tech. undergraduate student pursuing my major in Information Technology and Mathematical Innovation from Cluster Innovation Centre, University of Delhi, India. I have had interest in programming from a very young age. I started coding 4 years back, with my first language being C++. From there on I developed many short projects, applications, algorithms, programs.

I have background in C, C++, Java and PHP. I have participated in a couple of National Level Programming/App development Competitions.

Why Me?

This project has peaked my interest. I plan to use my insights from my earlier project to be effective here. I have previously worked on couple of applications from scratch till finish and have skills & qualification as well as passion for completing this project.

I'll be working for 40-50 hours a week (6-7 hours a day). My summer vacation will be best utilized for this task and will be fully devoted for the task. I don't fear the complications that this task will bring, I welcome them. They give me a chance to show my worth. To show that I can do this. I have developed many small projects and applications in C, C++ and Java but not all of them are on GitHub.

You can look at my GitHub profile : Vidit Tiwari

I developed mini-awesome shell (a UNIX shell) as my Operating Systems Project last semester: mini-awesome-shell

I am comfortable working independently under a supervisor or mentor who is just available virtually. I always wanted to contribute to open source project and I think GSOC will be a great starting point.

Primary Motivation

My primary motivation to submit proposal for this project is that I like the idea and according to my knowledge and prior experience I’m sure I can do this. I am an ardent follower of Open Source Community. Working with syslog-ng will also give me the opportunity to contribute to the Open Source community and polish my programming skills. GSOC coincidentally timed in this time. Looking through the various ideas I have picked syslog-ng as a command line tool as my project of choice. I liked other projects of syslog-ng, and I would also want to contribute in various projects even after GSOC. If I’m not selected I’ll definitely develop this project outside GSoC.

Clone this wiki locally