yes, that works fine:

    implicit class dsl[T](val flow: Flow[T]) extends AnyVal {
      def log(): Flow[T] = flow.transform(Log())
    }
    implicit class dsl2[I, T](val duct: Duct[I, T]) extends AnyVal {
      def log(): Duct[I, T] = duct.transform(Log())
    }

      import akka.stream.log.Log.{ dsl, dsl2 }
      val f: Flow[String] = Flow(List(1, 2, 3)).log().map((i: Int) ⇒ i.toString).log()
      val f2: Duct[Int, String] = Duct[Int].log().map((i: Int) ⇒ i.toString).log()