def setDefaultAppName()

in src/main/scala/com/gu/mobile/logback/MobileLogstashEncoder.scala [60:87]


  def setDefaultAppName(defaultAppName: String): Unit = maybeDefaultAppName = Some(defaultAppName)

  private lazy val loadAppStackStage: Map[String, String] = {
    val defaultAppName: String = maybeDefaultAppName.getOrElse(throw new IllegalArgumentException(
      s"""Logback xml must include a defaultAppName like
         |<encoder class="${classOf[MobileLogstashEncoder].getCanonicalName}">
         |  <defaultAppName>APP_NAME_HERE</defaultAppName>
         |</encoder>
      """.stripMargin))

    val identity = Option(System.getenv("MOBILE_LOCAL_DEV")) match {
      case Some(_) => DevIdentity(defaultAppName)
      case None => 
        AppIdentity
          .whoAmI(defaultAppName, DefaultCredentialsProvider.builder().build())
          .getOrElse(DevIdentity(defaultAppName))
      
    }    

    (identity match {
      case awsIdentity: AwsIdentity => Map(
        "app" -> awsIdentity.app,
        "stack" -> awsIdentity.stack,
        "stage" -> awsIdentity.stage
      ) ++ Try(EC2MetadataUtils.getInstanceId).toOption.map("ec2_instance" -> _)
      case _ => Map("app" -> defaultAppName)
    })
  }