class_docstr: Logs a greeting message without affecting the value passing on the connection.
class_docstr_tok: ["Logs","a","greeting","message","without","affecting","the","value","passing","on","the","connection","."]
docstr: :param message: the message to log. Can use `{value}` to embed the value.
  :param log_level: the level to log at.
docstr_tok: [":","param","message",":","the","message","to","log",".","Can","use","`","{","value","}","`","to","embed","the","value",".",":","param","log_level",":","the","level","to","log","at","."]
code: def __init__(
      self,
      message: str = "\nGreeting component says: Hi! The value is {value}\n",
      log_level: str = "INFO",
  ):
      """
      :param message: the message to log. Can use `{value}` to embed the value.
      :param log_level: the level to log at.
      """
      if log_level and not getattr(logging, log_level):
          raise ValueError(
              f"This log level does not exist: {log_level}"
          )
      self.message = message
      self.log_level = log_level
  
imports: from typing import Optional
  import logging
  from haystack.core.component import component
label_desc: Use image node_id 1 to create a new Greet object  with example: obj = Greet(message, log_level)