By Alvin Alexander. Last updated: January 25, 2026
As a brief ZIO 2 example, the end of this Scala/ZIO source code shows how to print information to the console in a ZIO application, both in the success case (STDOUT) and also in the failure case (STDERR):
val program = for
client: Client <- ZIO.service[Client]
res: Response <- client.url(url).get("/")
jsonBody: String <- res.body.asString
data: Data <- ZIO.fromEither(jsonBody.fromJson[Data])
yield
data
val run =
program.provide(
Client.default,
Scope.default
).foldZIO(
failure => Console.printLineError(s"failure = $failure"),
success => Console.printLine(s"success = $success")
)
As shown, I do this with the foldZIO function, which lets me handle the failure and success cases as shown with these two Console functions:
Console.printLineErrorConsole.printLine
I’ll share more of this code as time goes on, but basically I’m using a ZIO HTTP Client along with ZIO JSON to retrieve some JSON data and then print it to the system console (command line). I’m doing this because I essentially want this to be a little script to retrieve some data for me periodically.
| this post is sponsored by my books: | |||
#1 New Release |
FP Best Seller |
Learn Scala 3 |
Learn FP Fast |