Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7656651
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T12:49:18+00:00 2026-05-31T12:49:18+00:00

I want to develop logging system in OSGI bundle which can write application errors

  • 0

I want to develop logging system in OSGI bundle which can write application errors into file on the HDD.

This is the Activator:

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.Filter;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import org.osgi.util.tracker.ServiceTracker;


public class LoggingSystemApp implements BundleActivator {

    LoggingSystemImpl log = null;

    @Override
    public void start(final BundleContext bc) throws Exception {
        debug("Activator started");


        ServiceRegistration registerService = bc.registerService(LoggingSystemImpl.class.getName(), new LoggingSystemImpl(), new Properties());
          /* Start Logger System */
          log = LoggingSystemImpl.getInstance();
          log.start();       


    }

    public void stop(BundleContext bc) throws Exception {
        boolean ungetService = bc.ungetService(bc.getServiceReference(LoggingSystem.class.getName()));
        st.close();

        log.stop();
    }

    private void debug(String msg) {
        System.out.println("JDBCBundleActivator: " + msg);
    }

}

This is the implementation of the Logging system:

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.sql.Connection;
import javax.sql.DataSource;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Locale;
import org.DX_57.osgi.LS_27.api.LoggingSystem;

public class LoggingSystemImpl implements LoggingSystem {

       public LoggingSystemImpl() {
       }

       public DataSource ds;

       @Override
       public void setDataSource(DataSource ds){
           this.ds = ds;
       }


        private final static Calendar calendar = Calendar.getInstance();
        private final static String user = System.getenv("USERNAME").toLowerCase();
        private final static String sMonth = calendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH);
        private final static int y = calendar.get(Calendar.YEAR);

        // the name of the log file
        //private final String logName = sysDrive + "\\fttb_web - " + sMonth.toLowerCase() + ", " + y + ".log";
        private final String logName = "logger - " + sMonth.toLowerCase() + ", " + y + ".log";

        private static boolean closed;
        private static LoggingSystemImpl log = null;
        private static BufferedWriter bw = null;
        private static FileOutputStream fos = null;
        private static OutputStreamWriter osw = null;


        /* Utilialize Buffer and wait for data to write */
        public void start() throws IOException{            
            log = LoggingSystemImpl.getInstance();
        }

        public void stop(){            
            log.close();           
        }

        public void WriteLog(String WriteString){
            log.writeln(WriteString);            
        }

        public void LoggingSystemImpl() throws IOException
        {
            fos = new FileOutputStream(logName, true);

            // set encoding to cyrillic (if available)
            if (Charset.isSupported("windows-1251"))
            {
                osw = new OutputStreamWriter(fos, Charset.forName("windows-1251"));
            }
            else { osw = new OutputStreamWriter(fos); }

            bw = new BufferedWriter(osw, 2048); // 2Mb buffer


        }

        // intro header for log session
        public static synchronized LoggingSystemImpl getInstance() throws IOException
        {
            boolean exc = false;
            try
            {
                if (log == null || closed)
                {
                    log = new LoggingSystemImpl();
                    closed = false;
                    log.writeln("logged in.");
                    log.nl();
                }
            }
    //      catch(IOException x) { exc = true; throw x; }
            catch(Exception x) { exc = true; x.printStackTrace(); }
            finally
            {
                if (exc)
                {
                    try
                    {
                        if (fos != null) { fos.close(); fos = null; }
                        if (osw != null) { osw.close(); fos = null; }
                        if (bw != null)  { bw.close(); bw = null; }
                    }
                    catch(Exception x) { x.printStackTrace(); }
                }
            }
            return log;
        }


        public synchronized void nl()
        {
            try { bw.newLine(); }
            catch(IOException x) {x.printStackTrace();}
        }

        public synchronized void nl(int count)
        {
            try
            {
                for (int i = 0; i < count; i++) bw.newLine();
            }
            catch(IOException x) {x.printStackTrace();}
        }
        public synchronized void writeln(String s)
        {
            try { bw.write(getTime() + ": " + s); bw.newLine(); }
            catch(IOException x) {x.printStackTrace();}
        }

        public synchronized void write(String s)
        {
            try { bw.write(s); }
            catch (IOException x) {x.printStackTrace();}
        }

        public synchronized void close()
        {
            try
            {
                if (bw != null)
                {
                    writeln("logged out.");
                    nl();
                    bw.flush();
                    bw.close();
                    closed = true;

                    fos = null;
                    osw = null;
                    bw = null;
                }
            }
            catch(IOException x) { x.printStackTrace(); }

        }

        public synchronized boolean isClosed() { return closed; }

        public synchronized void writeException(Exception x)
        {
            writeln("");
            write("\t" + x.toString()); nl();
            StackTraceElement[] ste = x.getStackTrace();
            int j = 0;
            for (int i = 0; i < ste.length; i++)
            {

                if (i < 15) { write("\t\tat " + ste[i].toString()); nl(); }
                else { j++; }

            }

            if (j > 0) { write("\t\t... " + j + " more"); nl(); }

            nl(2);
        }

        private String getTime()
        {
            Calendar c = Calendar.getInstance();
            int month = c.get(Calendar.MONTH) + 1;

            int d = c.get(Calendar.DAY_OF_MONTH);
            int h = c.get(Calendar.HOUR_OF_DAY);

            int m = c.get(Calendar.MINUTE);
            int s = c.get(Calendar.SECOND);
            int y = c.get(Calendar.YEAR);

            String dd = d < 10 ? "0"+d : ""+d;
            String hh = h < 10 ? "0"+h : ""+h;
            String mm = m < 10 ? "0"+m : ""+m;
            String ss = s < 10 ? "0"+s : ""+s;
            String sm = month < 10 ? "0"+month : ""+month;

            return user + " [" + y + "." + sm + "." + dd + " " + hh +  ":" + mm +  ":" + ss + "]";
        }         



}

When I try to compile the code in Netbeans I get this error:

COMPILATION ERROR : 
-------------------------------------------------------------
org/DX_57/osgi/LS_27/impl/LoggingSystemImpl.java:[34,7] error: LoggingSystemImpl is not abstract and does not override abstract method SessionRegister(String,String,String) in LoggingSystem
1 error

How I can fix this problem?

Best wishes

P.S
this is the code of the interface

public interface LoggingSystem {

        public void setDataSource(DataSource ds);


}

EDIT
Can you tell me do you see any other errors in the code especially the Activator class?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T12:49:19+00:00Added an answer on May 31, 2026 at 12:49 pm

    Well, the error message is pretty clear. You can either declare LoggingSystemImpl as abstract or implement the missing method – SessionRegister(String,String,String).

    The reason for this is that the interface LoggingSystem has the method SessionRegister(String,String,String) declared. Because it has no implementation, it needs to be implemented in all non-abstract children, including your class.

    A quick fix would be:

    public class LoggingSystemImpl implements LoggingSystem {
       void SessionRegister(String,String,String) 
       { //dummy implementation
       }
       //other methods
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to develop an Android application which can run on all ,screen type
I want to develop a mobile web application using asp.net 3.5 that can be
I want develop a system where I can transfer some images and after run
i want to develop one desktop application using c# sql lite, this application i
I want to develop an chat application, in which I successfully added files of
I want to develop an ASP.NET application that can detect the user logged on
I want to develop an Java application that can detect the user logged on
I want to develop an Java application that can detect the user logged on
I want develop an application on windows mobile. In this app, i need to
I want to develop one application which read text from the image. Which library

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.