Congratulations. You have a smart child!
While telling bald-faced lies is a sign of problems in an adult or even in an older child, among toddlers and preschoolers it's a reflection of social sophistication and abstract thinking. Let me explain.
A lie is simply a solution to a problem. It's the best solution that the child (or adult) can come up with at the time. But before she offers a solution, she has to realize that there's a problem. That's why I say that lying can be a sign of good things in young children.
Children your daughter's age have difficulty telling the difference between fantasy and reality. The thought that a carpet can fly through the air is no stranger to her at that age than the thought that a picture appears when you turn on a television set. So some lies are simply a natural intrusion of fantasy onto reality.
Other lies show an awareness of consequences, which is both an early form of abstract thinking and a social skill. If I poured strawberry jam on the cat and now Mom looks upset, I can anticipate that she'll be angry with me if I say that I did it. So I'll lie, and blame my sister. There's no real malice here; it's simply the best way I can use my social and verbal skills to ward off potential trouble. In this case, the lie is a sign of maturity. It's something I wouldn't have done a few months ago.
Meanwhile, don't view this as a character defect. If you know that she's lying, tell her so without calling her a bad person. Keep your focus on the problem the spilled jam and have her help you clean it up as best she can.
Some of this type of lying will go away naturally as your daughter grows older and learns other ways to solve problems. She'll also become more skilled at lying, which is a good thing especially when she has to smile sweetly and thank her aunt for giving her socks for Christmas when what she really wanted was a video game!