w3resource

Kotlin Class: Logger class with companion object for logging


Write a Kotlin program that creates a class 'Logger' with a companion object that provides logging functionality.


Pre-Knowledge (Before You Start!)

Before attempting this exercise, you should be familiar with the following concepts:

  • Classes and Objects: Understanding how to define and use classes in Kotlin.
  • Companion Objects: Special objects in Kotlin that allow you to define static-like methods inside a class.
  • Private Constructors: Preventing direct instantiation of a class to enforce controlled access.
  • Singleton Pattern: Using a companion object to ensure only one instance of logging functionality is used.
  • Printing to Console: Using println() to display messages.

Hints (Try Before Looking at the Solution!)

Try to solve the problem using these hints:

  • Hint 1: Define a class named Logger with a private constructor to prevent object creation.
  • Hint 2: Inside the Logger class, define a companion object.
  • Hint 3: Add a function inside the companion object to log messages.
  • Hint 4: Use println() to display the log message in a formatted way.
  • Hint 5: In the main() function, call the log function using Logger.log("message").

Sample Solution:

Kotlin Code:

class Logger private constructor() {
    companion object {
        fun log(message: String) {
            println("Logging: $message")
        }
    }
}

fun main() {
    Logger.log("This is a log message.")
}

Sample Output:

Logging: This is a log message

Explanation:

In the above exercise -

  • First we define a "Logger" class with a private constructor to prevent direct instantiation of the class. Inside the "Logger" class, we have a companion object that provides logging functionality.
  • The companion object contains a log function that takes a message parameter and prints a log message. In this example, it simply prints the message with "Logging: ".
  • In the "main()" function, we call the log function of the Logger class through the companion object by using the syntax Logger.log("message"). This logs the provided message.

Go to:


PREV : Person class with nested ContactInfo class.
NEXT : Data class point with destructuring declaration.

Kotlin Editor:


Improve this sample solution and post your code through Disqus

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.